代碼反匯編
㈠ 怎麼樣反匯編出源代碼
看你反匯編什麼樣的文件,對於通用的windows執行文件來說,一般是使用專用的工具,比如soft ice,
ollydbg 等,但是這樣得到的也只是匯編代碼。對於Java Class來說,通過JAD等可以直接得到Java代碼。
㈡ 反匯編代碼怎麼看懂
如果是沒有優化的代碼,應該非常容易。
如果是優化過的代碼,先找跳轉和函數調用指令,因為這兩條指令最容易和源代碼對照起來。當然,有時候函數被inline,那就麻煩一些了。關鍵看你對自己源代碼的熟悉程度了。
㈢ 如何快速讀懂反匯編的匯編代碼
逆向工程的過程就是一個不斷揣測作者意圖思路的過程,期望原開發者內是個心智正常的容工程師,越是高手的代碼越好看懂,除非他刻意做反調試。快速是很難的,調試是極其枯燥的體力活,有時候一段代碼要跟蹤調試上百遍。可以先確定這個代碼是用什麼編譯器生成的,然後去了解下這個編譯器生產代碼的規律特點,這樣看到匯編可以腦補成c代碼。ida softice是神器,自從softice停止開發後我就沒再做過逆向工程了,只是偶爾用windbg調下崩潰問題,需要看看匯編。
作
㈣ 反匯編代碼解釋
MOVR7,#TCON(0x88)//分別給寄存器R7和R6賦值,結合程序整體分析,R7和R6共通構成了
//了一個整形變數,例如:uinti=0x1388;
MOVR6,#0x13
TAG1://什麼軟體的反匯編,居然能編譯出TAG來,
/*這兩句是將R7,和R6的值暫時存起來*/
MOVA,R7
MOVR4,0x06//以為51單片機中沒有MOVR4,R6這條指令,所以用這條代替
//典型的雙位元組變數減1程序
DECR7//低八位先減1
JNZTAG2//減1之前,如果不是0則跳到TAG2,是0則繼續執行
DECR6//高八位再減1
TAG2:
ORLA,R4//減一之前的高八位和低八位進行或運算
JNZTAG1//如果是0則結束,如果不是0,則返回TAG1繼續
//這在C里就是while(i--);
㈤ dll文件如何反匯編成源碼,C++語言編寫
1、動態調試,你載入DLL文件,然後跟進去。這種方法適合逆向DLL中某個特定的導出函專數代碼屬。
2、靜態反匯編分析,那也挺累的。
看你反匯編的意圖,最好用Lord Pe 載入一下,查看一下導出表中的函數,使用第一種方法。。
㈥ 反編譯和反匯編有什麼區別
有一定區別~
一般編譯型語言的程序叫反編譯~
解釋型語言的程序叫反匯編~
用IDA的一個插件可以做到反匯編一些程序的到源代碼的~
㈦ 反匯編後的代碼是什麼
現在的調試器(如OLLYDBG),反匯編器(IDA)默認情況下會將可執行文件反成80386的匯編,不過對一些.COM文件或未知格式的文件,IDA可能會將其反匯編為8086的匯編。要看懂匯編,很簡單,不停地看,遇到不懂的上網查,當然最好找點相關的書學習下。
有個很好的學習方法,自己在VC下寫代碼,設置斷點調試,當程序斷下來的時候,右鍵->Go to Disassembly,就可以看到你寫的C語言代碼中每條語句對應的匯編代碼。至於WIN32匯編,貌似不需要,反正我不懂。
㈧ 反匯編是不是能夠將軟體的源代碼反編譯出來
不是反編譯出來.而是要你自己去看.你如果匯編精通,也懂高級語言,那麼先嘗試把自己寫的程序用反匯編出來也就是俗稱的逆向
如果軟體脫過殼之後你可以試試.
反匯編的工具很多像微軟官方的WINDBG 像ollydbg IDA PRO
都可以的.如果你逆向自己的程序.像Visual Studio 有有反匯編功能.看下就懂了
希望能幫到你
㈨ 反匯編能否將代碼弄出來
常規意義上不能。就算勉強可以那也不會得到和原來一樣的代碼(比較。NET的中間語言)。
反匯編 把目標代碼轉為匯編代碼的過程.
通常,編寫程序是利用高級語言如C,Pascal等語言進行編程的,後再經過編譯程序生成可以 被計算機系統 直接執行的執行文件。反匯編即是指將這些執行文件反編譯還原成 匯編語言或其他 高級語言。但通常反編譯出來的程序與原程序會存在許多不同,雖然執行效果相同,但程序代碼 會發生很大的變化,非編程高手很難讀懂。
㈩ 反匯編是什麼
反匯編:把目標代碼轉為匯編代碼的過程。
通常,編寫程序是利用高級語言如C,Pascal等高級語言進行編程的,然後再經過編譯程序生成可以被計算機系統直接執行的文件。反匯編即是指將這些執行文件反編譯還原成匯編語言或其他高級語言。但通常反編譯出來的程序與原程序會存在許多不同,雖然執行效果相同,但程序代碼 會發生很大的變化,非編程高手很難讀懂。
另外,有許多程序也可以 進行逆向操作即反編譯以求修改,例如Flash的文件生成的SWF文件,也可以被反匯編成Flash原碼,但會發現與原程序有很大變化。反匯編可以通過反匯編的一些軟體實現DEBUG也能反匯編的,DEBUG文件位置-u,這樣就能實現了。
靜態反匯編是從反匯編出來的程序清單上分析,從提示信息入手進行分析。目前,大多數軟體在設計時,都採用了人機對話方式。所謂人機對話,即在軟體運行過程中,需要由用戶選擇的地方,軟體即顯示相應的提示信息,並等待用戶按鍵選擇。而在執行完某一段程序之後,便顯示一串提示信息,以反映該段程序運行後的狀態,是正常運行,還是出現錯誤,或者提示用戶進行下一步工作的幫助信息。為此,如果我們對靜態反匯編出來的程序清單進行閱讀,可了解軟體的編程思路,以便順利破解。
常用的靜態分析工具是W32DASM、OllyDbg IDA和HIEW等。簡單地講,反匯編可以看到軟體作者的編程思路,可以破解部分資源,可以將軟體漢化等,例如找到它是如何注冊的,從而解出它的注冊碼。