日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]OllyDBG 入门系列(二)-字串参考

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]OllyDBG 入门系列(二)-字串参考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標 題:?【原創】OllyDBG 入門系列(二)-字串參考
作 者:?CCDebuger
時 間:?2006-02-14,13:34
鏈 接:?http://bbs.pediy.com/showthread.php?t=21308

引用: 感謝?chuxuezhe?朋友的反饋:

http://bbs.pediy.com/showthread.php?s=&threadid=24703

經檢查才發現原來是寫文章前曾用修改過的?Ultra?String?Reference?插件查找過字串,這個修改后的插件會把找到的字串自動添加到代碼后面作為注釋,且所有字母都一律小寫,導致原來文章寫的時候注釋中的大小寫分不清楚,比較混亂。這次把文章一些地方修改了一下,全部用OD自帶功能進行操作,重新制作了幾個圖片。因為我自己的失誤,在此對給大家造成了閱讀中的困惑表示抱歉! OllyDBG?入門系列(二)-字串參考

作者:CCDebuger

上一篇是使用入門,現在我們開始正式進入破解。今天的目標程序是看雪兄《加密與解密》第一版附帶光盤中的?crackmes.cjb.net?鏡像打包中的?CFF?Crackme?#3,采用用戶名/序列號保護方式。原版加了個?UPX?的殼。剛開始學破解先不涉及殼的問題,我們主要是熟悉用?OllyDBG?來破解的一般方法。我這里把殼脫掉來分析,附件是脫殼后的文件,直接就可以拿來用。先說一下一般軟件破解的流程:拿到一個軟件先別接著馬上用?OllyDBG?調試,先運行一下,有幫助文檔的最好先看一下幫助,熟悉一下軟件的使用方法,再看看注冊的方式。如果是序列號方式可以先輸個假的來試一下,看看有什么反應,也給我們破解留下一些有用的線索。如果沒有輸入注冊碼的地方,要考慮一下是不是讀取注冊表或?Key?文件(一般稱?keyfile,就是程序讀取一個文件中的內容來判斷是否注冊),這些可以用其它工具來輔助分析。如果這些都不是,原程序只是一個功能不全的試用版,那要注冊為正式版本就要自己來寫代碼完善了。有點跑題了,呵呵。獲得程序的一些基本信息后,還要用查殼的工具來查一下程序是否加了殼,若沒殼的話看看程序是什么編譯器編的,如?VC、Delphi、VB?等。這樣的查殼工具有?PEiD?和?FI。有殼的話我們要盡量脫了殼后再來用?OllyDBG?調試,特殊情況下也可帶殼調試。下面進入正題:
我們先來運行一下這個?crackme(用?PEiD?檢測顯示是?Delphi?編的),界面如圖:



這個?crackme?已經把用戶名和注冊碼都輸好了,省得我們動手^_^。我們在那個“Register?now?!”按鈕上點擊一下,將會跳出一個對話框:

?

好了,今天我們就從這個錯誤對話框中顯示的“Wrong?Serial,?try?again!”來入手。啟動?OllyDBG,選擇菜單?文件->打開?載入?CrackMe3.exe?文件,我們會停在這里:

?

我們在反匯編窗口中右擊,出來一個菜單,我們在?查找->所有參考文本字串?上左鍵點擊:



當然如果用上面那個?超級字串參考+?插件會更方便。但我們的目標是熟悉?OllyDBG?的一些操作,我就盡量使用?OllyDBG?自帶的功能,少用插件。好了,現在出來另一個對話框,我們在這個對話框里右擊,選擇“查找文本”菜單項,輸入“Wrong?Serial,?try?again!”的開頭單詞“Wrong”(注意這里查找內容要區分大小寫)來查找,找到一處:

?

在我們找到的字串上右擊,再在出來的菜單上點擊“反匯編窗口中跟隨”,我們來到這里:



見上圖,為了看看是否還有其他的參考,可以通過選擇右鍵菜單查找參考->立即數,會出來一個對話框:



分別雙擊上面標出的兩個地址,我們會來到對應的位置:

00440F79?|.?BA?8C104400?????MOV?EDX,CrackMe3.0044108C?????????????;?ASCII?"Wrong?Serial,try?again!"
00440F7E?|.?A1?442C4400?????MOV?EAX,DWORD?PTR?DS:[442C44]
00440F83?|.?8B00????????????MOV?EAX,DWORD?PTR?DS:[EAX]
00440F85?|.?E8?DEC0FFFF?????CALL?CrackMe3.0043D068
00440F8A?|.?EB?18???????????JMP?SHORT?CrackMe3.00440FA4
00440F8C?|>?6A?00???????????PUSH?0
00440F8E?|.?B9?80104400?????MOV?ECX,CrackMe3.00441080?????????????;?ASCII?"Beggar?off!"
00440F93?|.?BA?8C104400?????MOV?EDX,CrackMe3.0044108C?????????????;?ASCII?"Wrong?Serial,try?again!"
00440F98?|.?A1?442C4400?????MOV?EAX,DWORD?PTR?DS:[442C44]
00440F9D?|.?8B00????????????MOV?EAX,DWORD?PTR?DS:[EAX]
00440F9F?|.?E8?C4C0FFFF?????CALL?CrackMe3.0043D068

我們在反匯編窗口中向上滾動一下再看看:

00440F2C?|.?8B45?FC?????????MOV?EAX,DWORD?PTR?SS:[EBP-4]
00440F2F?|.?BA?14104400?????MOV?EDX,CrackMe3.00441014?????????????;?ASCII?"Registered?User"
00440F34?|.?E8?F32BFCFF?????CALL?CrackMe3.00403B2C????????????????;?關鍵,要用F7跟進去
00440F39?|.?75?51???????????JNZ?SHORT?CrackMe3.00440F8C???????????;?這里跳走就完蛋
00440F3B?|.?8D55?FC?????????LEA?EDX,DWORD?PTR?SS:[EBP-4]
00440F3E?|.?8B83?C8020000???MOV?EAX,DWORD?PTR?DS:[EBX+2C8]
00440F44?|.?E8?D7FEFDFF?????CALL?CrackMe3.00420E20
00440F49?|.?8B45?FC?????????MOV?EAX,DWORD?PTR?SS:[EBP-4]
00440F4C?|.?BA?2C104400?????MOV?EDX,CrackMe3.0044102C?????????????;?ASCII?"GFX-754-IER-954"
00440F51?|.?E8?D62BFCFF?????CALL?CrackMe3.00403B2C????????????????;?關鍵,要用F7跟進去
00440F56?|.?75?1A???????????JNZ?SHORT?CrackMe3.00440F72???????????;?這里跳走就完蛋
00440F58?|.?6A?00?PUSH?0
00440F5A?|.?B9?3C104400?????MOV?ECX,CrackMe3.0044103C?????????????;?ASCII?"CrackMe?cracked?successfully"
00440F5F?|.?BA?5C104400?????MOV?EDX,CrackMe3.0044105C?????????????;?ASCII?"Congrats!?You?cracked?this?CrackMe!"
00440F64?|.?A1?442C4400?????MOV?EAX,DWORD?PTR?DS:[442C44]
00440F69?|.?8B00????????????MOV?EAX,DWORD?PTR?DS:[EAX]
00440F6B?|.?E8?F8C0FFFF?????CALL?CrackMe3.0043D068
00440F70?|.?EB?32???????????JMP?SHORT?CrackMe3.00440FA4
00440F72?|>?6A?00???????????PUSH?0
00440F74?|.?B9?80104400?????MOV?ECX,CrackMe3.00441080?????????????;?ASCII?"Beggar?off!"
00440F79?|.?BA?8C104400?????MOV?EDX,CrackMe3.0044108C?????????????;?ASCII?"Wrong?Serial,try?again!"
00440F7E?|.?A1?442C4400?????MOV?EAX,DWORD?PTR?DS:[442C44]
00440F83?|.?8B00????????????MOV?EAX,DWORD?PTR?DS:[EAX]
00440F85?|.?E8?DEC0FFFF?????CALL?CrackMe3.0043D068
00440F8A?|.?EB?18???????????JMP?SHORT?CrackMe3.00440FA4
00440F8C?|>?6A?00???????????PUSH?0
00440F8E?|.?B9?80104400?????MOV?ECX,CrackMe3.00441080?????????????;?ASCII?"Beggar?off!"
00440F93?|.?BA?8C104400?????MOV?EDX,CrackMe3.0044108C?????????????;?ASCII?"Wrong?Serial,try?again!"
00440F98?|.?A1?442C4400?????MOV?EAX,DWORD?PTR?DS:[442C44]
00440F9D?|.?8B00????????????MOV?EAX,DWORD?PTR?DS:[EAX]
00440F9F?|.?E8?C4C0FFFF?????CALL?CrackMe3.0043D068


大家注意看一下上面的注釋,我在上面標了兩個關鍵點。有人可能要問,你怎么知道那兩個地方是關鍵點?其實很簡單,我是根據查看是哪條指令跳到“wrong?serial,try?again”這條字串對應的指令來決定的。如果你在?調試選項->CPU?標簽中把“顯示跳轉路徑”及其下面的兩個“如跳轉未實現則顯示灰色路徑”、“顯示跳轉到選定命令的路徑”都選上的話,就會看到是從什么地方跳到出錯字串處的:



我們在上圖中地址?00440F2C?處按?F2?鍵設個斷點,現在我們按?F9?鍵,程序已運行起來了。我在上面那個編輯框中隨便輸入一下,如?CCDebuger,下面那個編輯框我還保留為原來的“754-GFX-IER-954”,我們點一下那個“Register?now?!”按鈕,呵,OllyDBG?跳了出來,暫停在我們下的斷點處。我們看一下信息窗口,你應該發現了你剛才輸入的內容了吧?我這里顯示是這樣:

堆棧?SS:[0012F9AC]=00D44DB4,?(ASCII?"CCDebuger")
EAX=00000009

上面的內存地址?00D44DB4?中就是我們剛才輸入的內容,我這里是?CCDebuger。你可以在?堆棧?SS:[0012F9AC]=00D44DB4,?(ASCII?"CCDebuger")?這條內容上左擊選擇一下,再點右鍵,在彈出菜單中選擇“數據窗口中跟隨數值”,你就會在下面的數據窗口中看到你剛才輸入的內容。而?EAX=00000009?指的是你輸入內容的長度。如我輸入的?CCDebuger?是9個字符。如下圖所示:


?
現在我們來按?F8?鍵一步步分析一下:

00440F2C?|.?8B45?FC?????????MOV?EAX,DWORD?PTR?SS:[EBP-4]??????????;?把我們輸入的內容送到EAX,我這里是“CCDebuger”
00440F2F?|.?BA?14104400?????MOV?EDX,CrackMe3.00441014?????????????;?ASCII?"Registered?User"
00440F34?|.?E8?F32BFCFF?????CALL?CrackMe3.00403B2C????????????????;?關鍵,要用F7跟進去
00440F39?|.?75?51???????????JNZ?SHORT?CrackMe3.00440F8C???????????;?這里跳走就完蛋

當我們按?F8?鍵走到?00440F34?|.?E8?F32BFCFF?????CALL?CrackMe3.00403B2C?這一句時,我們按一下?F7?鍵,進入這個?CALL,進去后光標停在這一句:


?
我們所看到的那些?PUSH?EBX、?PUSH?ESI?等都是調用子程序保存堆棧時用的指令,不用管它,按?F8?鍵一步步過來,我們只關心關鍵部分:

00403B2C?/$?53??????????????PUSH?EBX
00403B2D?|.?56??????????????PUSH?ESI
00403B2E?|.?57??????????????PUSH?EDI
00403B2F?|.?89C6????????????MOV?ESI,EAX?????????????????????????;?把EAX內我們輸入的用戶名送到?ESI
00403B31?|.?89D7????????????MOV?EDI,EDX?????????????????????????;?把EDX內的數據“Registered?User”送到EDI
00403B33?|.?39D0????????????CMP?EAX,EDX?????????????????????????;?用“Registered?User”和我們輸入的用戶名作比較
00403B35?|.?0F84?8F000000???JE?CrackMe3.00403BCA????????????????;?相同則跳
00403B3B?|.?85F6????????????TEST?ESI,ESI????????????????????????;?看看ESI中是否有數據,主要是看看我們有沒有輸入用戶名
00403B3D?|.?74?68???????????JE?SHORT?CrackMe3.00403BA7??????????;?用戶名為空則跳
00403B3F?|.?85FF????????????TEST?EDI,EDI
00403B41?|.?74?6B???????????JE?SHORT?CrackMe3.00403BAE
00403B43?|.?8B46?FC?????????MOV?EAX,DWORD?PTR?DS:[ESI-4]????????;?用戶名長度送EAX
00403B46?|.?8B57?FC?????????MOV?EDX,DWORD?PTR?DS:[EDI-4]????????;?“Registered?User”字串的長度送EDX
00403B49?|.?29D0????????????SUB?EAX,EDX?????????????????????????;?把用戶名長度和“Registered?User”字串長度相減
00403B4B?|.?77?02???????????JA?SHORT?CrackMe3.00403B4F??????????;?用戶名長度大于“Registered?User”長度則跳
00403B4D?|.?01C2????????????ADD?EDX,EAX?????????????????????????;?把減后值與“Registered?User”長度相加,即用戶名長度
00403B4F?|>?52??????????????PUSH?EDX
00403B50?|.?C1EA?02?????????SHR?EDX,2???????????????????????????;?用戶名長度值右移2位,這里相當于長度除以4
00403B53?|.?74?26???????????JE?SHORT?CrackMe3.00403B7B??????????;?上面的指令及這條指令就是判斷用戶名長度最少不能低于4
00403B55?|>?8B0E????????????MOV?ECX,DWORD?PTR?DS:[ESI]??????????;?把我們輸入的用戶名送到ECX
00403B57?|.?8B1F????????????MOV?EBX,DWORD?PTR?DS:[EDI]??????????;?把“Registered?User”送到EBX
00403B59?|.?39D9????????????CMP?ECX,EBX?????????????????????????;?比較
00403B5B?|.?75?58???????????JNZ?SHORT?CrackMe3.00403BB5?????????;?不等則完蛋

根據上面的分析,我們知道用戶名必須是“Registered?User”。我們按?F9?鍵讓程序運行,出現錯誤對話框,點確定,重新在第一個編輯框中輸入“Registered?User”,再次點擊那個“Register?now?!”按鈕,被?OllyDBG?攔下。因為地址?00440F34?處的那個?CALL?我們已經分析清楚了,這次就不用再按?F7?鍵跟進去了,直接按?F8?鍵通過。我們一路按?F8?鍵,來到第二個關鍵代碼處:

00440F49?|.?8B45?FC?????????MOV?EAX,DWORD?PTR?SS:[EBP-4]?????????;?取輸入的注冊碼
00440F4C?|.?BA?2C104400?????MOV?EDX,CrackMe3.0044102C????????????;?ASCII?"GFX-754-IER-954"
00440F51?|.?E8?D62BFCFF?????CALL?CrackMe3.00403B2C???????????????;?關鍵,要用F7跟進去
00440F56?|.?75?1A???????????JNZ?SHORT?CrackMe3.00440F72??????????;?這里跳走就完蛋

大家注意看一下,地址?00440F51?處的?CALL?CrackMe3.00403B2C?和上面我們分析的地址?00440F34?處的?CALL?CrackMe3.00403B2C?是不是匯編指令都一樣啊?這說明檢測用戶名和注冊碼是用的同一個子程序。而這個子程序?CALL?我們在上面已經分析過了。我們執行到現在可以很容易得出結論,這個?CALL?也就是把我們輸入的注冊碼與?00440F4C?地址處指令后的“GFX-754-IER-954”作比較,相等則?OK。好了,我們已經得到足夠的信息了。現在我們在菜單?查看->斷點?上點擊一下,打開斷點窗口(也可以通過組合鍵?ALT+B?或點擊工具欄上那個“B”圖標打開斷點窗口):



為什么要做這一步,而不是把這個斷點刪除呢?這里主要是為了保險一點,萬一分析錯誤,我們還要接著分析,要是把斷點刪除了就要做一些重復工作了。還是先禁用一下,如果經過實際驗證證明我們的分析是正確的,再刪不遲。現在我們把斷點禁用,在?OllyDBG?中按?F9?鍵讓程序運行。輸入我們經分析得出的內容:
用戶名:Registered?User
注冊碼:GFX-754-IER-954
點擊“Register?now?!”按鈕,呵呵,終于成功了:



--------------------------------------------------------------------------------
【版權聲明】?本文純屬技術交流,?轉載請注明作者并保持文章的完整,?謝謝!
上傳的附件
cffo-3.rar?(2006-02-14?13:36, 0, 16467 次下載)
轉載請注明出處[http://samlin.cnblogs.com/]?
作者贊賞
?
當當計算書籍 5-8折
剛做的招標網:八爪魚招標網?請大家多意見 分類:?軟件工程 標簽:?OllyDBG
本文轉自Sam Lin博客博客園博客,原文鏈接:http://www.cnblogs.com/samlin/archive/2009/04/01/1427460.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的[转]OllyDBG 入门系列(二)-字串参考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰福利在线观看 | 都市激情自拍偷拍 | 香蕉视频久久久 | www.黄色片网站 | 宅男深夜视频 | 日韩操| 国产精品久久久久久久蜜臀 | 国产sm调教一区二区 | 开心激情站 | 欧美日韩二区三区 | 久久久久国产精品午夜一区 | 亚洲一区日韩精品 | 天堂在线8| 亚洲激情a | 丰满熟女一区二区三区 | 9i免费看片黄| 欧美性精品 | 久久久久久久色 | 91久久精品国产 | 欧美a√在线 | 熟睡侵犯の奶水授乳在线 | 日韩三级一区二区 | 国产综合社区 | 亚洲综合在线成人 | 午夜在线观看视频网站 | 欧美gv在线观看 | 9999re| 狠狠干在线视频 | 国产精品久久久精品三级 | 中文字幕2区| 成人污| 天堂资源地址在线 | 啪啪自拍 | 亚洲午夜国产 | 波多野结衣一区二区在线 | 涩涩视频免费观看 | 一级成人黄色片 | 欧美片网站yy| 日韩一中文字幕 | 伊人精品在线视频 | 熟妇人妻无码xxx视频 | 日韩福利一区二区三区 | 日本高清不卡在线 | 久久靠逼视频 | 嫩草影院黄 | 黄色免费网站观看 | av色先锋 | 成人免费在线视频 | 国产精品综合一区二区 | 亚洲自拍av在线 | 在线观看黄色av | 成人午夜剧场视频网站 | 久久精品国产亚洲av嫖农村妇女 | 中文字幕av二区 | 啪啪免费网址 | 午夜福利毛片 | 一卡二卡三卡在线 | 国产图片区 | 蜜桃在线一区二区 | 亚洲成年人免费观看 | av片亚洲| 亚洲AV无码一区二区伊人久久 | 免费在线网站 | 91精品视频网站 | 奇米av在线| 男人的天堂av片 | 污污小视频 | 成人香蕉视频在线观看 | 国产白丝精品91爽爽久久 | 国产精品视频一区二区三区在3 | 成人公开视频 | 亚洲一区二区三区观看 | 中国黄色录像 | 国产又黄又嫩又滑又白 | 美足av电影| 欧美黑人又粗又大的性格特点 | 国产精品成人aaaaa网站 | 黄色片视频免费看 | 中文字幕在线第一页 | 国产精品爽爽久久久久久 | av天堂一区 | 美女黄色在线观看 | 国产精品美女久久久久图片 | 欧美在线一二三四区 | 亚州国产精品 | 美女精品久久久 | 日韩免费在线视频观看 | 青青av在线 | 亚洲精品伊人 | 亚洲av人人澡人人爽人人夜夜 | 丁香婷婷社区 | 亚洲福利视频网 | 97视频入口| 富婆如狼似虎找黑人老外 | 国产crm系统91在线 | 黄色国产视频网站 | 国产精品久久久久久久裸模 | 一级黄色a视频 | 黄色成人在线观看 |