編譯和反編譯技術實戰豆瓣
❶ 反編譯原理和書籍
什麼反編譯原理?
有《編譯原理》這本書和《程序設計語言編譯原理》
如果是學逆向思維和軟體破解就看《看雪論壇精華1~9》
❷ 如何進行反編程
我們按照三種不同的分類,從多個角度闡述反編譯的基本過程。
如果按照反編譯技術實施的順序劃分,則可以分為7個階段,它們是:句法分析、語義分析、中間代碼生成、控制流圖生成、控制流分析、代碼生成。
如果按照實踐中的具體操作劃分,一般也可以分為7個不同的步驟,分別是:文件裝載,指令解碼,語義映射,相關圖構造,過程分析,類型分析和結果輸出等。
以逆向分析為目的,反編譯的各個階段並不是一個嚴格的一遍順序,而是存在著一些並行的模塊,並且也需要通過循環執行分析過程來針對某些特殊問題(例如非N分支代碼產生的間接跳轉指令)進行分析和恢復。
反編譯的處理過程,如果按功能區分,可以分為:前端、中端和後端三個部分。其實這種劃分方式是將上述兩種過程的階段進行合並,也就是將幾個反編譯器階段組合在一起。這樣劃分的好處是:通過設計不同的前端、中端和後端以實現針對多種源和目標的反編譯器。
❸ 安卓反編譯學習什麼
這段時間在學Android應用開發,在想既然是用java開發的應該很好反編譯從而得到源代碼吧,google了一下,確實很簡單,以下是我的實踐過程。
在此鄭重聲明,貼出來的目的不是為了去破解人家的軟體,完全是一種學習的態度,不過好像通過這種方式也可以去漢化一些外國軟體。
本文Android反編譯教程,測試環境:
Win7 Ultimate x64
Ubuntu 12.04
x86_x64
反編譯工具包 下載
(2012-10-10更新)
一、Apk反編譯得到Java源代碼
下載上述反編譯工具包,打開apk2java目錄下的dex2jar-0.0.9.9文件夾,內含apk反編譯成java源碼工具,以及源碼查看工具。
apk反編譯工具dex2jar,是將apk中的classes.dex轉化成jar文件
源碼查看工具jdgui,是一個反編譯工具,可以直接查看反編譯後的jar包源代碼
dex2jar
和 jdgui 最新版本下載,分別見google code:
dex2jar(google code)
jdgui(google code),最新版本請見 官方
具體步驟:
首先將apk文件後綴改為zip並解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的,將classes.dex復制到dex2jar.bat所在目錄dex2jar-0.0.9.9文件夾。
在命令行下定位到dex2jar.bat所在目錄,運行
dex2jar.bat classes.dex
生成
classes_dex2jar.jar
然後,進入jdgui文件夾雙擊jd-gui.exe,打開上面生成的jar包classes_dex2jar.jar,即可看到源代碼了
❹ app反編譯和apk反編譯有什麼區別
APP指的是各種系統類型的程序
而APK指的是用於安卓系統的程序
因此一個是廣泛的統稱,一個是特定的叫法。
易語言對於反編譯是沒有任何多大的用處的
如果你要學會多種系統類型上用的程序,那麼你要學的東西會很多。
如果你只是要學會APK反編譯,而且是深層次的修改,那麼懂點JAVA知識還是有點用處的。
❺ 反編譯什麼意思,具體該怎麼用
反編譯:高級語言源程序經過編譯變成可執行文件,反編譯就是逆過程。計算機軟體逆向工程,又稱計算機軟體恢復工程,是指對其他軟體的目標程序(如可執行程序)進行「逆向分析和研究」,從而推導出設計思想、原理、結構、演算法、處理過程、操作方法等要素,等被其他軟體產品使用,在某些特定情況下可能會衍生出源代碼。反編譯可以作為開發軟體時的參考,也可以直接用於軟體產品中。
(5)編譯和反編譯技術實戰豆瓣擴展閱讀:
如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。
❻ 想學反編譯,從哪學起啊
這個軟體是用Delphi寫的,它運行後在所在目錄下生成一個tmp2文件,這實際上也是個exe文件,用C++ Builder寫成(不過看作者是一個外國的,應該是snow.exe的作者不會或懶得下雪,於是就簡單地調用了別人的軟體^_^),下雪的功能都是由它來完成的。
snow.exe和tmp2都是用ASPack2.12加的殼。
你需要下一個ASPack脫殼工具。
用OllyDbg可以查看反編譯的匯編代碼。
下雪的功能也就是用GDI32里的SetPixel把像素畫成白色。
另外,反編譯也就是個人研究用用,不要用作其他目的。
❼ 反編譯就真的那麼難
C#的程序很好反編譯,基本能還原成原代碼,
❽ 如何反編譯 ipa 源文件
ipa文件,就是iOS設備上的.app文件的最終形式,它的組成是資源文件+本地化文件+plist文件+app文件,目前,我可以公布的反編譯技術就是解壓縮至app文件中的執行文件,進一步向下反編譯,就是非常麻煩、費時而且只能在底層完成的工作了。
首先,你需要有一個BetterZip或者是類似的解壓縮軟體,BetterZip的下載地址在這里。之後,對下載下來的ipa文件按右鍵,或者ctrl加單機,使用Betterzip打開。
這些app中的圖片和語言資源都是可以使用的
❾ 反編譯是什麼意思
計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,
某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
(9)編譯和反編譯技術實戰豆瓣擴展閱讀
反編譯是一個復雜的過程,反編譯軟體有:
1、SWF相關的反編譯程序
Action Script Viewer
第一個也是最強大的商業SWF反編譯工具,同類產品中,它的AS代碼反編譯效果最好,SWF轉Fla工程重建成功率最高。
2、Android相關的反編譯程序
SMALI/BAKSMAL
SMALI/BAKSMALI是一個強大的apk文件編輯工具,用於Dalvik虛擬機(Google公司自己設計用於Android平台的虛擬機)來反編譯和回編譯classes.dex。其語法是一種寬松式的Jasmin/dedexer語法,而且它實現了.dex格式所有功能(註解,調試信息,線路信息等)。
3、python相關的反編譯程序
uncompyle2
uncompyle2可以直接轉化為十分完美的python源碼,並可以將反編譯後的源碼再次生成位元組碼文件。
參考資料來源:網路-反向編譯