[學習筆記]通過各語言特征碼尋找按鈕事件
今天的課件都無殼。
一 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++是不會調用這個庫的。
接下來在這一行雙擊回到反匯編窗口,右鍵---查找---命令,輸入
(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++程序的核心代碼區域
[學習筆記]通過各語言特征碼尋找按鈕事件