1. 程式人生 > >[學習筆記]通過各語言特征碼尋找按鈕事件

[學習筆記]通過各語言特征碼尋找按鈕事件

說明 什麽 繼續 -- ++ color 註意 bubuko 檢測

今天的課件都無殼。

一 Delphi和BC++

DIE檢測一下,是Delphi

技術分享圖片

OD載入

反匯編窗口右鍵---查找---二進制字符串

技術分享圖片

查看一下特征碼

技術分享圖片

復制Delphi的特征碼,粘貼進剛才打開的查找二進制的窗口

技術分享圖片

點擊確定返回反匯編窗口。查看一下找到的第一個特征碼

一般情況下,找到特征碼對應的會是一個跳轉,而跳轉下面如果有一個CALL就說明是我們要找的,F2下斷點

如果跳轉下面沒有CALL就CTRL+L跳過,繼續尋找下一個

(應對較大的程序可以直接用腳本搜索下斷)

技術分享圖片

找到所有的搜索結果,並下好斷點後,F9運行程序,輸入假碼,點擊註冊,程序會被斷下來。

這個就是Delephi的按鈕事件。

接下來就是F7依次進入設置斷點的CALL裏去尋找關鍵代碼了。

技術分享圖片

二 VB

DIE看一下信息

技術分享圖片

載入OD,查找--二進制字符串,輸入“816C24

技術分享圖片

技術分享圖片

點確定後,發現找到了四個結果和結果下面的四個JMP。

依次下斷。

技術分享圖片

F8單步,就進入了按鈕事件的代碼段。

三 MFC

DIE查看一下

技術分享圖片

發現識別出的語言是VC++,不是MFC

載入OD看一下到底是什麽語言編寫的

載入後,點擊工具欄上的E按鈕

技術分享圖片

有調用MFC42.DLL的就是MFC語言,正常的VC++是不會調用這個庫的。

接下來在這一行雙擊回到反匯編窗口,右鍵---查找---命令,輸入

"sub eax,oa"

(VB比較特殊,這裏查找的就不是二進制字符串了)

技術分享圖片

然後看一下查找的結果

技術分享圖片

技術分享圖片

然後跳到下一個特征碼處,相同的方法繼續找JE,回車跟隨到跳轉目的地找CALL

所有的特征碼找一遍然後F9運行,依次進去檢查下斷點的CALL

四 易語言

技術分享圖片

OD載入,查找---二進制字符串,輸入“FF25”,可以看到

(註意:這個FF25是易語言特征碼,和下面的FF 55 FC 5F 5E不同,那是易語言按鈕事件的特征碼)

技術分享圖片

push 0x52010001 這一行未必每次都能出現,但下面的連續JUMP是一定會有的,視程序大小數量不同而已。

既然確定了是易語言,那就在“搜索二進制字符串”出輸入易語言按鈕事件的特征碼“FF 55 FC 5F 5E”

技術分享圖片

五 VC++

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

回車跟到JE結尾處,下面會有一個CALL,在此處下斷。

技術分享圖片

重新載入,F9運行,彈出的程序登錄窗口任意輸入假碼註冊,被OD斷在剛才設置的斷點處。F7進CALL

註意,此時並不是VC++程序的核心代碼區域

技術分享圖片

技術分享圖片

[學習筆記]通過各語言特征碼尋找按鈕事件