?

免費教程_免費網賺教程_破解版軟件-寂涯網絡學習基地

當前位置: 主頁 > 系統綜合 > 軟件破解 > 對某crackme的寫法的分析及注冊機編寫

對某crackme的寫法的分析及注冊機編寫

時間:2012-02-23 13:17來源:未知 整理:寂涯網絡 點擊:

也不知道是什么時候留下的一個crackme閑來無事拿來練手,突然發覺還是個蠻有趣的
Crackme,于是就記錄下來過程給新手作為參考。因為本文面向新手,所以過程盡量詳細、
結構盡量清晰。先說下本文用到的工具,Peid、Od、vc6.0。
逆向分析一個軟件基本流程如下:運行今查殼今調試今分析算法今寫出注冊碼今寫出注
冊機。本文為求思路清晰,按照上面流程依次進行分析。
運行,在確保不是病毒的情況下,試著運行下軟件,從外圍查看下軟件的特征,有很多
很有用的信息會在調試分析的時候有很重要的作用的。如這個crackme的運行情況,我們先
輸入Name、Serial 結果如圖 1

輸入name,serial

輸入name:noback,serial:hack點擊test發現沒有狀況。
由此我們可以得出可以通過搜索字符串Name can not be empty的方法來進入我們分析 的領空或者斷點函數MessageBox (MessageBoxA)。目前得到的信息是:查找字符串或者 MessageBox函數下斷或許可行。
殼,拿到一個軟件首先查下有沒有加殼,有殼的脫殼有anti的去anti,因為這個crackme沒有加殼,并且脫殼是一門比逆向更為高深的技術,、三言兩語也是解說不清的,在這里就 不做贅述了,但是這個流程在逆向分析中是必不可少的。如果拿了軟件就來調試,并且很不幸的軟件加過殼,那么你的工作怕是白白浪費在了殼的空間里了。目前得到信息:軟件無殼 可以直接調試。
調試,調試應該是逆向分析過程中最為苦力活的階段,這個需要豐富的經驗、扎實的匯 編基礎以及絕不放棄的毅力。進入調試,也算是進入正題了,我們先用習慣性的手法,首先 查找下字符串看有沒有什么收獲,如圖3

圖3

碰到了我們在運行里面記錄下的字符串,
004010FE |. |6A 40 push 40 ;
/Style = MB_OK|MB_ _IC0NASTERISK MB_APPLM0DAL
00401100 |. |68 64604000 push 00406064 ;
|erorr   
00401105 |. 68 30604000 push 00406030 ; |s
0040110A |. |56 push esi ;
|h 0040110B | |FF15A0504000 call d word ptr [<&USER32.MessageBoxA>>;
\MessageBoxA   
原來是來到MessageBoxA處,正好是我們需要找的相關區域。在010040110a出下斷,
f9運行,SNameSSerial,點擊test果然斷在此處,證明此處跟我們預想的是一致的。
順便提一下,在查找關鍵函數區域的時候還以使用bpxr指令,查看程序調用了哪些函數,
比如MessageBoxA、GetDlgItemTextA等函數。我們在斷在了 MessageBoxA處后向上看下相
關區域,居然看到了GetDlgItemTextA函數,如圖4

圖4


至此我們找到了最關鍵的區域了接下來我們就來分析下程序,在每個關鍵代碼后都加了注釋,通過注釋來理解匯編的意思,如下:
//關鍵call的開始   
004010B0 /$ 83EC lC sub esp, 1C //分配局部變量空間
004010B3 I. 8D4424 00 lea eax, dword ptr [esp]
004010B7 I. 56 push esi 
004010B8 I. 8B7424 24 mov esi, dword ptr [esp+24]
004010BC I. 57 push edi 
004010BD I. 8B3D 9C504000 mov edi, dword ptr [<&USER32. GetDlgI>;
USER32. GetDlgItemTextA   
004010C3 I. 6A 07 push 7 !
/Count = 7     
004010C5 I. 50 push eax !
|Buffer = 0012FA60   
004010C6 I. 68 F2030000 push 3F2 )
|ControlID = 3F2 (1010.)   
004010CB I. 56 push esi !
|hWnd     
004010CC I. FFD7 call edi )
\GetD1gItemTextA "獲取輸入的Name前六個字符,存放到[eax]中
004010CE  |. 85C0   test eax, eax
//判斷是否為空Name,為空則彈出MessageBoxA 
004010D0 I. 75 19 jnz short 004010EB ;
//     
004010D2 I. 6A 40 push 40 !
/Style = MB_OK|MB _ICONASTERISK|MB_APPLMODAL 
004010D4 I. 68 64604000 push 00406064 ;

本頁地址 http://www.ionrce.tw/ruanjianpojie/20120223782.html

百度搜索更多

谷歌搜索更多

頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
?
評價:
昵稱: 驗證碼:點擊我更換圖片
推薦內容
贊助商
贊助商
?

關于本站免責聲明視頻更新google百度地圖視頻地圖RRS訂閱

如有什么問題請在本站留言,或發郵件到 hxt167#foxmail.com

内蒙古十一选五基本走势图手机版