1.背景

在逆向Dephi程序时,会出现Dede软件可以看到函数的函数名,但是IDA逆向的时候看不到,为了解决这个问题,可以通过以下的方法来实现:

2.基础知识

IDA因为没有PDB文件,无法还原函数的原始名称,通过逆向工程师的汇编代码识别,可以给函数手工重新命名,也可以使用IDC脚本语言来给特定的地址命名:

MakeName(0x006E624C, "TSingleForm.ComboBox1Change");

基于这个原理,我们查找一下DEde如何生成这样的“地址:函数”的对应表。

3.实操

1.从Dede中导出地址函数表

找到文件夹里的events.txt,这就是包含函数地址和函数名的文件。

2.运行python脚本把events.txt转化为IDC脚本;

以下的脚本打开脚本相同目录下的events.txt,用.split()方法把地址和函数名装入list[0]和list[1]中,无函数名的过滤掉。

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:]):  #函数名==地址的,不要
                        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脚本,重命名函数

打开Ida,File-->Script file,选择刚才生成的ida.idc文件,即可批量重命名函数了。

这样,你的dehpi就有函数名了。

4.总结

通过这个脚本,我们就可以把专业dephi程序分析的结果,转移到IDA专业逆向代码分析的平台,实现联动。

参考文献:把MAP文件导入IDA Pro的小程序

到此这篇关于Dephi逆向工具Dede导出函数名MAP导入到IDA中的文章就介绍到这了,更多相关MAP导入到IDA内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Dephi逆向工具Dede导出函数名MAP导入到IDA中的实现方法的更多相关文章

  1. Swift 进阶 —— map 和 flatMap的使用

    这篇文章主要介绍了Swift map和flatMap的相关资料,帮助大家更好的理解和使用Swift,感兴趣的朋友可以了解下

  2. Spring Boot + EasyExcel实现数据导入导出

    这篇文章主要介绍了Spring Boot+EasyExcel实现数据导入导出,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

  3. phpexcel导入excel处理大数据(实例讲解)

    下面小编就为大家带来一篇phpexcel导入excel处理大数据(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. react中使用forEach或map两种方式遍历数组

    这篇文章主要介绍了react中使用forEach或map两种方式遍历数组,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  5. Vue中构造数组数据之map和forEach方法实现

    数组操作是前端最重要的数据操作,构造数组数据,又是数组操作中很常见的,本文将梳理下map和forEach方法在Vue项目中的使用,感兴趣的朋友跟随小编一起看看吧

  6. React Native中实现动态导入的示例代码

    随着业务的发展,每一个 React Native 应用的代码数量都在不断增加。作为一个前端想到的方案自然就是动态导入(Dynamic import)了,本文介绍了React Native中实现动态导入的示例代码,需要的可以参考一下

  7. Java Map接口概述和常用方法详解

    现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。本文就来聊聊Map接口概述和常用方法

  8. 基于python实现cdn日志文件导入mysql进行分析

    这篇文章主要介绍了基于python实现cdn日志文件导入mysql进行分析,本文以阿里云CDN日志作为辅助查询数据展开主题内容,其它云平台大同小异,需要的小伙伴可以参考一下

  9. Angular Excel 导入与导出的实现代码

    这篇文章主要介绍了Angular Excel 导入与导出的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. mybatis实现获取入参是List和Map的取值

    这篇文章主要介绍了mybatis实现获取入参是List和Map的取值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部