逆向入門思路

學習逆向分析已經有一段時間了,一切從無到有,從生疏到開始逐漸掌握一點點門道。今天將自己的經驗做個記錄,希望能大家能共同交流一起進步:
    對於一個剛剛入門軟件破解的新手來說,最基礎也是最關鍵的就是下斷,下斷下的好壞,直接影響着一個程序能否快速的找到關鍵代碼段,進而逆向其算法寫出註冊機或者爆破掉。
   而一般的下斷思路,無非以下幾種
      1 特殊函數下斷(關鍵函數請看另一篇日誌http://blog.csdn.net/u011775291/article/details/37775291)
      2 關鍵字符串下斷,一般提示註冊成功或者失敗的參考字符串,然後分析跳轉的來自方向,就能找到關鍵代碼了。
      3 按鈕事件下斷,按鈕觸發一系列事情經過就叫着按鈕事件,那麼這個按鈕就叫事件按鈕。一般常用於窗口程序,能迅速斷在關鍵地方。
      4 消息下斷,個人不太喜歡這種下斷方式,因爲很多時候都會停在dll中,然後在廣袤的系統代碼裏迷失了自己的方向。不過這也是一種思路,可以嘗試一下。
(之前看到過有人問怎麼下消息斷點,這裏我在重複一下方法,
1. 打開程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右擊/FindReferences(查找參考)
5. 下條件斷點 [SHIFT+F4]
6. 表達式: MSG
7. 記錄函數參數:永遠


如果你不能找到它,試試右擊鼠標,然後搜索全部模塊中的名稱。
但是如果我想要捕捉一個特定的消息如WM_COMMAND呢?
只對WM_COMMAND記錄
用這個方法做:
1. 打開一個程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右擊/FindReferences(查找參考)
5. 下條件斷點 [SHIFT+F4]
6. 條件框:MSG==WM_COMMAND
7. 記錄函數參數: 條件滿足時
如果你不能找到User32.TranslateMessage API,象上面那樣做。
一般常用的消息類型:
WM_LBUTTONDOWN,WM_KEYDOWN  ,VK_SHIFT,WM_KEYDOWN,WM_CHAR ,WM_KEYUP 


5 對於部分語言編寫的程序可以用特定的軟件先做分析,比如delphi編寫的程序可以用dede分析按鈕事件,這樣效率也很高。
      6 如果上面方式都有嘗試,但都木有成功,那麼,我就會一步步跟了,這種方法雖然原始但卻有效哈哈。

軟件破解分類:
1序列號
消息斷點(WM_LBUTTONDOWN/WM_LBUTTONUP)
API下斷
字符串比較
2 KeyFile(CHECK-CD)
FindFirstFileA        確定註冊文件是否存在
CreateFileA        確定並打開句柄
GetFileSize
GetFileAttributes
ReadFile
主要是僞造keyfile

CDKEY:
GetLogicalDriveStrings()  GetLogicalDrivers()
GetDriveType()
CreateFileA()  FindFirstFileA()


3 nag窗口
常用api
MessageBOX, 
DialogBoxParam, 
ShowWwindow,
CreateWindowExa
一般nag窗口是通過調用資源來顯示對話框的,所用用eXeScope或者Resource Hacker打開
4 網絡驗證:
找到send和recv函數
int send(
  SOCKET s,
  const char FAR* buf,
  int len,
  int flags
);
int recv(
  SOCKET s,
  char FAR* buf,
  int len,
  int flags
);
一般是寫一個本地服務端模擬服務器
5 時間限制
使用SetTimer函數向系統申請一個計時器,當在超時時調用一個回調函數或者是發送WM_TIMER
UINT SetTimer(
  HWND hWnd,
  UINT nIDEvent, 
  UINT uElapse, 
  TIMERPROC lpTimerFunc 
); 
GetLocalTime 獲取本地時間 
GetSystemTime 獲取系統時間 
GetTickCount系統自啓動後經過的毫秒數
GetFileTime 獲取文件時間
輔助工具:變速齒輪,可以縮短調試所需要的時間
6 菜單功能限制:
一般都會調用函數EnableMenultem,或者EnableWindow

關於針對各種函數各種語言各種事件的斷點,之前看別人總結過,下面貼上下載地址,供大家參考:
http://download.csdn.net/detail/nightsay/8296969


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章