日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
IDA Pro:Windows或Linux反編譯器和調(diào)試器

IDA Pro Advanced是目前最棒的一個(gè)靜態(tài)反編譯軟件,是破解者不可缺少的利器!巨酷的反編譯軟件,破解高手們幾乎都喜歡用這個(gè)軟件。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到海棠網(wǎng)站設(shè)計(jì)與海棠網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋海棠地區(qū)。

下載鏈接:http://down./data/149279

>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具

I 介紹

幾天前我烈軍屬了一篇關(guān)于解密程序的教程,而這篇也是一個(gè)對(duì)于高效的,極好的IDA Pro 4.0x教程。通常菜鳥不喜歡,而高手又崇拜它。不喜歡的原因是因?yàn)镮DA相對(duì)于w32dasm來(lái)說(shuō)有更多的附加功能和作用,有更大的復(fù)雜性

在下面的教程中由于你過(guò)去可能喜歡使用w32dasm,我將盡力給出一個(gè)簡(jiǎn)單和清楚的解釋來(lái)介紹如何使用IDA。也將試差回答"什么是最好的反匯編?"這里其實(shí)沒(méi)有一個(gè)簡(jiǎn)單的回答。對(duì)于更多的高手來(lái)說(shuō)可以讀這個(gè):向菜鳥100%解釋IDA的使用過(guò)程。

II. IDA: 一個(gè)高效的反匯編工具

當(dāng)你運(yùn)行IDA Pro時(shí),你所最先注意到的是它的界面比w32dasm更加專業(yè),這里比w32dasm有更多的選項(xiàng)或更先進(jìn)的地方。它的優(yōu)點(diǎn)是可以更好的反匯編和更有深層分析。而缺點(diǎn)是使用IDA更困難。

實(shí)際上IDA同w32dasm有很多相同的功能:可以快速到達(dá)指定的代碼位置;可以看到跳到指定的位置的jmp的命令位置;可以看參考字符串;可以保存靜態(tài)匯編等。

現(xiàn)在讓我們運(yùn)行和反匯編一個(gè)小程序(我使用starclean.exe)一個(gè)窗口彈出來(lái),那里有很多選項(xiàng),不要?jiǎng)铀瑑H僅點(diǎn)擊OK。讓IDA來(lái)分析,當(dāng)它結(jié)束后在name的選項(xiàng)中同w32dasm中參考字符串一樣,查找"a"字符。在name窗口中搜索欄中按a,然后開(kāi)始查找,一旦找到,按enter或雙擊它,它就將到達(dá)正確的位置。按ctrl+enter將到達(dá)下一個(gè)位置。參考字符串就在光標(biāo)附近。IDA就可以到達(dá)相應(yīng)的位置了。

另一個(gè)同w32dasm相同的:jmp和call參考在IDA也是有效的。在w32dasm反匯編的代碼同IDA中相同的。

代碼開(kāi)始(w32dasm)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403B50(C)
|
:00403B5F 81FAFC000000            cmp edx, 000000FC
:00403B65 0F8478010000            je 00403CE3
:00403B6B 8D8424B4000000          lea eax, dword ptr [esp+000000B4]
:00403B72 6804010000              push 00000104
:00403B77 50                      push eax
* Reference To: KERNEL32.GetModuleFileNameA, Ord:00E9h
|
:00403B78 8B2D88924000            mov ebp, dword ptr [00409288]
:00403B7E 6A00                    push 00000000
:00403B80 FFD5                    call ebp
:00403B82 85C0                    test eax, eax
:00403B84 7516                    jne 00403B9C
* Possible StringData Ref from Data Obj ->"
"
|
:00403B86 BE206A4000              mov esi, 00406A20
:00403B8B 8DBC24B4000000          lea edi, dword ptr [esp+000000B4]
:00403B92 B905000000              mov ecx, 00000005
:00403B97 F3                      repz
:00403B98 A5                      movsd
:00403B99 66A5                    movsw
:00403B9B A4                      movsb

結(jié)束結(jié)束

 #p#

代碼開(kāi)始(IDA Pro 4.0x)
00403B5F loc_403B5F:

; CODE XREF: sub_403B00+50j
00403B5F                 cmp     edx, 0FCh
00403B65                 jz      loc_403CE3
00403B6B                 lea     eax, [esp+1B8h+var_104]
00403B72                 push    104h
00403B77                 push    eax
00403B78                 mov     ebp, ds:GetModuleFileNameA
00403B7E                 push    0
00403B80                 call    ebp ; GetModuleFileNameA
00403B82                 test    eax, eax
00403B84                 jnz     short loc_403B9C
00403B86                 mov     esi, offset aProgramNameUnk ; "
"
00403B8B                 lea     edi, [esp+1B8h+var_104]
00403B92                 mov     ecx, 5
00403B97                 repe movsd
00403B99                 movsw
00403B9B                 movsb
代碼結(jié)束

你在這里看到,IDA提供了更多的細(xì)節(jié)信息,它是更加清楚,用一個(gè)參考作為例子。 在w32dasm中如下:

* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:00403B50(C)

在IDA Pro中如下:

CODE XREF: sub_403B00+50j

IDA provides 使用更短的行來(lái)提供更多的信息。

1. 用一個(gè)jump (j)

2. jump到代碼的位置位于00403B50 (=403B00+50)

3. 函數(shù)/call本身在403B00(403B00+50)

4. jump在.code section

如果參考的是一個(gè)call那么它將如下:

CODE XREF: sub_403B00+50p

另一個(gè)大的優(yōu)點(diǎn)是IDA可以轉(zhuǎn)換變量。你可以雙擊變量以找到它們保存的地址處: lea edi, [esp+1B8h+var_104]。

功能中最有用的之一是使用近似查找。很容易解釋:IDA盡力記住寄存器所關(guān)聯(lián)的庫(kù)函數(shù)。如下:

代碼開(kāi)始 (IDA Pro)  
004012D2 loc_4012D2:

; CODE XREF: sub_401280+5Fj
004012D2                 movsx   ecx, byte ptr [eax]
004012D5                 push    eax
004012D6                 lea     ebp, [ebp+ecx*2+0]
004012DA                 call    edi ; CharNextA

; Return a pointer to the next character in a

; string
004012DC                 cmp     byte ptr [eax], 0
004012DF                 jnz     short loc_4012D2
代碼結(jié)束

 #p#

代碼開(kāi)始 (w32dasm)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004012DF(C)
|
:004012D2 0FBE08                  movsx ecx, byte ptr [eax]
:004012D5 50                      push eax
:004012D6 8D6C4D00                lea ebp, dword ptr [ebp+2*ecx]
:004012DA FFD7                    call edi
:004012DC 803800                  cmp byte ptr [eax], 00
:004012DF 75F1                    jne 004012D2

代碼結(jié)束

你注意到它們的不同了嗎?IDA將向解釋每一件事情。

在IDA中另一個(gè)同w32dasm近似的是十分簡(jiǎn)單的,如:"Goto code location" 等同于在IDA"Jump - Jump to adress" . 或者 "Goto entrypoint" 等同于在IDA"Jump - Jump to entry point" .

那些就是在你了解IDA開(kāi)始使用它前最為重要的東西。有時(shí) ,IDA顯示大量的"db",參考字符串,僅有代碼。僅僅可以設(shè)好光標(biāo),按"c"鍵,IDA轉(zhuǎn)換代碼如下

開(kāi)始 (在按'C'之前)

00401228                 dd offset unk_406130
0040122C                 db  8Bh ; ?0040122D                 db  35h ; 5
0040122E                 dd offset RegSetValueExA
00401232                 db  6Ah ; j
00401233                 db    1 ;
00401234                 db  6Ah ; j
00401235                 db    0 ;
00401236                 db  68h ; h
00401237                 dd offset aName         ; "Name"
0040123B                 db  51h ; Q
0040123C                 db 0FFh ;
0040123D                 db 0D6h ; ?0040123E

db  8Bh ; ?0040123F                 db  4Ch ; L
00401240                 db  24h ; $
00401241                 db    8 ;
00401242                 db  68h ; h
代碼結(jié)束

開(kāi)始 (在按'C'之前)
0040122C                 mov     esi, ds:RegSetValueExA
00401232 ; ---------------------------------------------------------
00401232                 push    1
00401234                 push    0
00401236                 push    offset aName    ; "Name"
0040123B ; ------------------------------------------------------
0040123B                 push    ecx
0040123C                 call    esi ; RegSetValueExA
0040123E                 mov     ecx, [esp+8]
00401242                 push    100h
00401247                 push    offset unk_406030
0040124C ; -------------------------------------------------------
0040124C                 push    1
0040124E                 push    0
00401250                 push    offset aCode    ; "Code"
00401255 ; --------------------------------------------------
00401255                 push    ecx
00401256                 call    esi ; RegSetValueExA
00401258                 mov     eax, [esp+8]
0040125C                 push    eax
0040125D                 call    ds:RegCloseKey
代碼結(jié)束

#p#

IDA另一個(gè)優(yōu)點(diǎn)(快速相加):

1. 能夠?qū)32dasm無(wú)法反匯編的最難的軟件進(jìn)行反匯編(如加殼程序)

2. 能夠以.asm .sym 和甚至是 .exe及其它文件形式保存

3. 壓縮的靜態(tài)匯編,可以節(jié)省大量的磁盤空間。

4. 可以重命名函數(shù)

5. 能夠分析巨大的程序

III. w32dasm??

你看完了后你現(xiàn)在可以自問(wèn)"如果IDA這么好看,為什么我還要使用w32dasm?"下面就是對(duì)于這個(gè)的解釋:

首先是速度,對(duì)于IDA來(lái)分析一個(gè)小程序是非常非常的快,但是如果分析一個(gè)大的exe它就要花費(fèi)3個(gè)小時(shí)或更多的時(shí)間來(lái)全面分析exe。

其次,如果你對(duì)于一個(gè)指定的搜索,IDA將很慢的,而在w32dasm中在文本方面中搜索是很快的。

第三:當(dāng)分析一個(gè)僅有簡(jiǎn)單的保護(hù)的程序時(shí),w32dasm就為首選。因?yàn)槟憔筒恍枰贗DA那些附加的功能了。

上面的三個(gè)因素可以說(shuō)明一切了 ???? 如果你知道其它的使用w32dasm原因的話,請(qǐng)告訴我。

IV. 結(jié)束

又一個(gè)教程結(jié)束了。享受IDA and w32dasm以及所有.....享受研究和保持學(xué)習(xí)和繼續(xù)研究和破解吧。不是為了解密,僅是文章,寫下你的文章,傳播你的知識(shí)。對(duì)于解密這是重要的來(lái)說(shuō)。不要用于解密吧。


當(dāng)前標(biāo)題:IDA Pro:Windows或Linux反編譯器和調(diào)試器
URL網(wǎng)址:http://www.5511xx.com/article/cojocph.html