4.10 x64dbg 反汇编功能的封装

火影  金牌会员 | 2023-7-11 08:15:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

LyScript 插件提供的反汇编系列函数虽然能够实现基本的反汇编功能,但在实际使用中,可能会遇到一些更为复杂的需求,此时就需要根据自身需要进行二次开发,以实现更加高级的功能。本章将继续深入探索反汇编功能,并将介绍如何实现反汇编代码的检索、获取上下一条代码等功能。这些功能对于分析和调试代码都非常有用,因此是书中重要的内容之一。在本章的学习过程中,读者不仅可以掌握反汇编的基础知识和技巧,还能够了解如何进行插件的开发和调试,这对于提高读者的技能和能力也非常有帮助。
4.10.1 搜索内存机器码特征

首先我们来实现第一种需求,通过LyScript插件实现搜索内存中的特定机器码,此功能当然可通过scan_memory_all()系列函数实现,但读者希望你能通过自己的理解调用原生API接口实现这个需求,要实现该功能第一步则是需要封装一个GetCode()函数,该函数的作用是读取进程数据到内存中。
其中dbg.get_local_base()用于获取当前进程内的首地址,而通过start_address + dbg.get_local_size()的方式则可获取到该程序的结束地址,当确定了读取范围后再通过dbg.read_memory_byte(index)循环即可将程序的内存数据读入,而ReadHexCode()仅仅只是一个格式化函数,这段程序的核心代码可以总结为如下样子;
[code]# 将可执行文件中的单数转换为 0x00 格式def ReadHexCode(code):    hex_code = []    for index in code:        if index >= 0 and index
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表