国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 邏輯算法 > 正文

(看雪教程) 第4章 第3節IDA Pro簡介

2019-09-10 09:02:11
字體:
來源:轉載
供稿:網友

程式獵人翻譯
(譯者注:歡迎訪問程式獵人的主頁http://programhunter.126.com/
對象:IDA Pro反匯編軟件
目標: N/A
URL:http://www.datarescue.com/
作者: BlackB
日期: 2000-06-05
使用工具: Your brain
難度等級(級 1-5): 1
開始前

  IDA Pro Avanced是一個極好的反匯編工具,它大的勝過了w32dasm。近來它的盜版已經在網上傳播開了,你可以很輕松得到它。對于這方面的觀點有如下幾種:一些人認為這是好的,是自由的;而另一些人認為是可恥的,那些認為是可恥的人通常是這個軟件的老用戶,事實上他們買了那個程序,如果你花了$500買了那個程序的話,你就可以理解他們的反應了。 對于讀者來說,你們做什么不是我的問題及我所關心的。而我的觀點是如果認為非法的winzip軟件同IDA Pro 4.0x一樣好或壞。如果你使用非法的winzip,你就不應當使用非法的IDA Pro。

I 介紹

  幾天前我烈軍屬了一篇關于解密程序的教程,而這篇也是一個對于高效的,極好的IDA Pro 4.0x教程。通常菜鳥不喜歡,而高手又崇拜它。不喜歡的原因是因為IDA相對于w32dasm來說有更多的附加功能和作用,有更大的復雜性
在下面的教程中由于你過去可能喜歡使用w32dasm,我將盡力給出一個簡單和清楚的解釋來介紹如何使用IDA。也將試差回答"什么是最好的反匯編?"這里其實沒有一個簡單的回答。對于更多的高手來說可以讀這個:向菜鳥100%解釋IDA的使用過程。

II. IDA: 一個高效的反匯編工具

  當你運行IDA Pro時,你所最先注意到的是它的界面比w32dasm更加專業,這里比w32dasm有更多的選項或更先進的地方。它的優點是可以更好的反匯編和更有深層分析。而缺點是使用IDA更困難。
實際上IDA同w32dasm有很多相同的功能:可以快速到達指定的代碼位置;可以看到跳到指定的位置的jmp的命令位置;可以看參考字符串;可以保存靜態匯編等。
  現在讓我們運行和反匯編一個小程序(我使用starclean.exe)一個窗口彈出來,那里有很多選項,不要動它,僅僅點擊OK。讓IDA來分析,當它結束后在name的選項中同w32dasm中參考字符串一樣,查找"a"字符。在name窗口中搜索欄中按a,然后開始查找,一旦找到,按enter或雙擊它,它就將到達正確的位置。按ctrl+enter將到達下一個位置。參考字符串就在光標附近。IDA就可以到達相應的位置了。
另一個同w32dasm相同的:jmp和call參考在IDA也是有效的。在w32dasm反匯編的代碼同IDA中相同的。

代碼開始(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結束結束

代碼開始(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
代碼結束

你在這里看到,IDA提供了更多的細節信息,它是更加清楚,用一個參考作為例子。
在w32dasm中如下:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403B50(C)

在IDA Pro中如下:
CODE XREF: sub_403B00+50j

IDA provides 使用更短的行來提供更多的信息。
1. 用一個jump (j)
2. jump到代碼的位置位于00403B50 (=403B00+50)
3. 函數/call本身在403B00(403B00+50)
4. jump在.code section

  如果參考的是一個call那么它將如下:
CODE XREF: sub_403B00+50p

  另一個大的優點是IDA可以轉換變量。你可以雙擊變量以找到它們保存的地址處: lea edi [esp+1B8h+var_104]。
功能中最有用的之一是使用近似查找。很容易解釋:IDA盡力記住寄存器所關聯的庫函數。如下:

代碼開始 (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
代碼結束

代碼開始 (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代碼結束

  你注意到它們的不同了嗎?IDA將向解釋每一件事情。
  在IDA中另一個同w32dasm近似的是十分簡單的,如:"Goto code location" 等同于在IDA"Jump - Jump to adress" . 或者 "Goto entrypoint" 等同于在IDA"Jump - Jump to entry point" .

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


開始 (在按'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
代碼結束

開始 (在按'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
代碼結束

IDA另一個優點(快速相加):

1. 能夠對w32dasm無法反匯編的最難的軟件進行反匯編(如加程序)
2. 能夠以.asm .sym 和甚至是 .exe及其它文件形式保存
3. 壓縮的靜態匯編,可以節省大量的磁盤空間。
4. 可以重命名函數
5. 能夠分析巨大的程序
等等.... ;-)


III. w32dasm??


  你看完了后你現在可以自問"如果IDA這么好看,為什么我還要使用w32dasm?"下面就是對于這個的解釋:
首先是速度,對于IDA來分析一個小程序是非常非常的快,但是如果分析一個大的exe它就要花費3個小時或更多的時間來全面分析exe。
其次,如果你對于一個指定的搜索,IDA將很慢的,而在w32dasm中在文本方面中搜索是很快的。
第三:當分析一個僅有簡單的保護的程序時,w32dasm就為首選。因為你就不需要在IDA那些附加的功能了。
上面的三個因素可以說明一切了 :-) 如果你知道其它的使用w32dasm原因的話,請告訴我。


IV. 結束

  又一個教程結束了。享受IDA and w32dasm以及所有.....享受研究和保持學習和繼續研究和破解吧。不是為了解密,僅是文章,寫下你的文章,傳播你的知識。對于解密這是重要的來說。不要用于解密吧。

感謝大家

The Blackbird

Endnote:
  The Blackbird 創作于1999-2000
此文章可以自由分發,出版,打印……等盡可能長的修飾。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产porn在线| 欧美日韩一区二区三区视视频| www.大网伊人| av小说在线| 男女午夜视频在线观看| 国产有码在线| 国产福利在线免费观看| 国产黄色av免费看| 99色在线观看| 欧美一级久久久久久久久大| 免费的黄网站在线观看| 超碰国产在线观看| 中文字幕国产在线| 国产福利av网站| 亚洲精品成人a| 夜夜操com| 欧美婷婷久久五月精品三区| 九色视频网站| 国产超碰精品在线观看| 亚洲wwwwww| 国产欧美日韩第一页| 羞羞视频在线免费看| 91超碰免费在线| 69久久精品| 中文字幕第一页在线| av在线电影观看| 国产三级视频在线看| 欧美亚洲天堂| gogogogo高清视频在线| 国产h色视频在线观看| 久热免费在线视频| 97中文字幕| 18成年在线观看| 国产精彩视频在线观看免费蜜芽| www.av在线| 在线国产一区二区三区| 中文字幕在线免费视频| 免费在线看v| 日本视频在线| 精品福利视频导航大全| 国产精品69xx| 在线一区二区三区精品| 97福利电影| 精品剧情v国产在线观看| 国产色a在线观看| 国产免费永久在线观看| 九九热免费在线视频| 免费视频二区| 激情丁香婷婷| 午夜国产福利在线| 国产日产精品久久久久久婷婷| 中文字幕免费在线视频| 国产一起色一起爱| 国产野外战在线播放| 国产日韩欧美一区二区三区视频| 国产三级香港三韩国三级| 国产激情视频一区二区三区| 2019中文字幕在线视频| av福利在线| 麻豆精品永久免费视频| h网站免费在线观看| 免费在线播放av| 最近中文字幕mv免费高清在线| 午夜av在线播放| 精品免费视频一卡2卡三卡4卡不卡| 91精选福利| 久久精品国产亚洲a∨麻豆| 国产九色视频| 国产精品乱码一区二区三区视频| av福利在线| 国内精品一区视频| 国产精品乱码一区二区三区视频| 91黄色在线| 午夜在线小视频| 精品国产高清自在线一区二区三区| 99在线免费视频| 九色精品视频在线观看| 国产经典三级在线| 国内外激情在线| 国产白浆在线| 国产永久免费高清在线观看| 国产激情小视频在线| 免费看的毛片| 永久免费在线观看| 中文字幕人成高视频| jizz在线视频| 在线三级中文| 国产成在线观看免费视频| 国产中文第一页| 麻豆视频国产| 亚洲欧美精品日韩欧美| 国产午夜精品一区理论片| 青青草免费在线观看| 精精国产xxxx视频在线中文版| 99视频免费在线观看| 国产在线小视频| 九色成人在线| 高清在线观看av| 国产美女性感在线观看懂色av| 在线免费观看你懂的| 国产香蕉视频在线看| 尤物在线网址| 国产高清视频免费最新在线| 国产秀色在线www免费观看| 午夜免费视频在线国产| 九九热视频免费在线观看| av中文在线| 欧美亚洲另类在线观看| 牛牛精品视频在线| 福利在线国产| 狠狠狠综合7777久夜色撩人| 免费男女羞羞的视频网站中文字幕| av中文资源在线| 久久精品国产亚洲a∨麻豆| 国内精品一区视频| 最好2018中文免费视频| 中文字幕在线播放网址| 国产小视频在线观看| 国产黄色片在线播放| av亚洲男人天堂| 亚洲jjzzjjzz在线观看| jizz国产| 国产色在线 com| 四虎成人免费| 国产中文字幕网| 国产午夜在线视频| 亚洲an天堂an在线观看| 毛片网站在线观看| 国产高清视频在线| 超碰免费97在线观看| ·天天天天操| 国产美女在线播放| 影音先锋中文字幕在线| 丁香婷婷在线观看| 中文在线视频| 国产网站麻豆精品视频| 91午夜视频| 丁香花高清视频完整版在线观看| 国产黄视频网站| 老司机精品视频一区二区| 国产国产国产国产国产国产 | 国产黄在线看| 日本aⅴ写真网站免费| 国产精品人人爱一区二区白浆| 日本亚洲欧美| 国产福利一区二区在线精品| 成人av小说网| 任你操视频在线观看| 国产欧美日本亚洲精品一4区| 午夜在线不卡| 在线视频中文字幕| 国产一二区在线观看| 久久久久久久久久久久久91| av免费在线一区二区三区| 国产精品国精产品一二| 国产原创精品视频| 久热av在线| 久久综合精品视频| аⅴ成人天堂中文在线| 精品网站www| 国产福利三区| 2019中文字幕在线电影免费| 国产人成在线观看| 国产专区在线| 国自产拍在线网站网址视频| av中文字幕在线看| av中文天堂在线| 午夜在线网站| 天天干天天摸| jizz性欧美| 欧美高清视频| 国产有码在线| 国产精品视频一区二区三区麻豆| 最新亚洲精品国自产在线观看| 中文字幕日本在线| 国产成人精品久久一区二区小说 | 91sp网站在线观看入口| 久久这里精品| 国产欧美在线观看视频| 国产精品xxx电影| 在线观看免费高清完整| 免费99热在线观看| 中文字幕成人乱码在线电影| 国产激情网址| 男人天堂99| 国产三线在线| 波多野结衣久久高清免费| 精品中文字幕不卡在线视频| 国产一二区在线| 四虎国产精品永久| 国产小视频免费在线观看| 97高清视频| 日本精品一区二区三区在线播放| 国产字幕在线看| 亚洲欧美精品日韩欧美| 天堂资源最新版在线视频观看免费网| 中文乱码字幕高清在线观看| 国产aa视频| 天天插天天干| 国产免费麻豆视频|