Dephi逆向工具Dede導出函數(shù)名MAP導入到IDA中的實現(xiàn)方法
1.背景
在逆向Dephi程序時,會出現(xiàn)Dede軟件可以看到函數(shù)的函數(shù)名,但是IDA逆向的時候看不到,為了解決這個問題,可以通過以下的方法來實現(xiàn):

2.基礎(chǔ)知識
IDA因為沒有PDB文件,無法還原函數(shù)的原始名稱,通過逆向工程師的匯編代碼識別,可以給函數(shù)手工重新命名,也可以使用IDC腳本語言來給特定的地址命名:
MakeName(0x006E624C, "TSingleForm.ComboBox1Change");
基于這個原理,我們查找一下DEde如何生成這樣的“地址:函數(shù)”的對應表。
3.實操
1.從Dede中導出地址函數(shù)表

找到文件夾里的events.txt,這就是包含函數(shù)地址和函數(shù)名的文件。

2.運行python腳本把events.txt轉(zhuǎn)化為IDC腳本;
以下的腳本打開腳本相同目錄下的events.txt,用.split()方法把地址和函數(shù)名裝入list[0]和list[1]中,無函數(shù)名的過濾掉。
import os
try:
import chardet
except:
os.system('pip install chardet')
import chardet
def check_charset(file_path):
import chardet
with open(file_path, "rb") as f:
data = f.read(4)
charset = chardet.detect(data)['encoding']
return charset
def map2idc(in_file, out_file):
with open(out_file, 'w') as fout:
fout.write('#include <idc.idc>\n')
fout.write('static main()\n{\n')
with open(in_file,encoding=check_charset(in_file)) as fin:
for line in fin:
list = line.split()
if len(list) == 2 and len(str(list[1])) == 8 and str(list[1]).isalnum():
if(list[1][-4:]!=list[0][-4:]): #函數(shù)名==地址的,不要
fout.write('\tMakeName(0x%s, "%s");\n' % (list[1], list[0]))
fout.write('}\n')
def main():
return map2idc("./events.txt","./ida.idc")把上面的python復制到.py文件里,python腳本和events.txt放在同一個目錄下,運行python腳本,就會生成ida.idc文件。一個簡單的idc腳本如下:
#include <idc.idc>
static main()
{
MakeName(0x0040178C, "TObject.System.GetSpace(Integer):TBlock;");
}3.運行idc腳本,重命名函數(shù)
打開Ida,F(xiàn)ile-->Script file,選擇剛才生成的ida.idc文件,即可批量重命名函數(shù)了。

這樣,你的dehpi就有函數(shù)名了。
4.總結(jié)
通過這個腳本,我們就可以把專業(yè)dephi程序分析的結(jié)果,轉(zhuǎn)移到IDA專業(yè)逆向代碼分析的平臺,實現(xiàn)聯(lián)動。
參考文獻:把MAP文件導入IDA Pro的小程序
到此這篇關(guān)于Dephi逆向工具Dede導出函數(shù)名MAP導入到IDA中的文章就介紹到這了,更多相關(guān)MAP導入到IDA內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python django 原生sql 獲取數(shù)據(jù)的例子
今天小編就為大家分享一篇python django 原生sql 獲取數(shù)據(jù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python 項目目錄結(jié)構(gòu)設(shè)置
JAVA有標準的maven目錄結(jié)構(gòu),golang也有建議的目錄結(jié)構(gòu),那么我想python是不是也有一個比較好的目錄結(jié)構(gòu)組織方式呢2020-02-02
python目標檢測yolo3詳解預測及代碼復現(xiàn)
這篇文章主要為大家介紹了python目標檢測yolo3詳解預測及代碼復現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

