x64dbg 特征码搜索插件
本帖最后由 luoyuchen 于 2023-1-7 13:51 编辑分析:分析报告
前言:
目前只支持32 功能方面还没用开发完。
目前就只能搜索特征,后期再增加功能
2022/10/28
1.新增复制菜单 [复制地址|复制模块偏移]
2.新增下断 [双击表项则对该地址进行下断]
3.对搜索出来的特征地址位静态地址的情况下 自动添加注释【注释为:当前模块+偏移】
2022/10/29
1.新增单击表项跳转提示
2.新增流程图绘制
3.新增转到指定地址,确保内存地址有效。[可以是直接的内存地址:401000 可是是模块+偏移:xxxxx.dll+xxx ]
4.新增内存申请和内存释放 [增加这个的原因是之前在OD插件摆烂没有弄。 这个可以在测试HOOK 或者CALL的使用用到 用于测试代码 申请内存后会自动跳到申请的内存目前只支持一条,后期在增加可以操作更多]
5.新增 调用地址 [这个配合申请内存使用可以看作是远程call]
2022/10/30
1.新增转到内存储存1
2.新增搜索完特征码后自动分析函数
3.新增偏移定位 [比如:你特征码定位到上面或者下面 那么 +偏移量 或者 -偏移量 来达到你真正的地址]
4.增加易语言转字节集监视 【这个我偷了个懒用了最笨的方法】
2022/10/30 23:55更新
1.修复 [特征码,偏移定位]输入得问题,导致特征码得长度收到限制
2.优化一些逻辑判断
3.增加取消断点[之前把这个给忘了,也是一样双击表项取消。会自动判断当前是否有断点,没有则下断,有则取消]
4.增加透明设置[这个没什么用,纯粹为了好看。每次打开x64dbg会自动加载之前所设置得透明度]
5.增加保存特征码
6.增加回车搜索[之前看到留言说把这个增加上]
这次增加功能的截图就不发了,在帖子最后发一张大概
2022/10/31
1.修复会导致x64dbg崩溃的BUG 已测试最新版
2.优化流程
2022/11/6
1.主要是以优化为主。
2022/11/7
1.内存申请和调用移动到软件窗口 [可以>申请整数,小数,文本,字节集 申请整数和字节集会自动跳转到申请得地址 这样方便去调用写好的HOOK或者CALL 会列出来所有申请得内存地址]
2.优化易语言转字节集
3.优化每次搜索都会自动跳到程序入口处。[优化这个是因为申请内存以后在申请的内存地址进行特征码搜索,会造成x64dbg崩溃]
2022/11/8
1.新增反汇编读取[特征码搜索以后自动得出当前地址反汇编]
2.优化跳转判断[读取指针是否有效 调用x64dbg API实现]
3.优化调用地址和内存申请跳转
4.优化若干流程
5.新增特征码扫描[格式例子已经放在里面,点击菜单选择导入特征码即可,会自动搜索。并添加标签调用x64dbg API实现搜索的同时会自动转到搜索到的地址。特征码搜索文本请为:UTF8编码]
2022/11/11
1.新增自动附加[ 把HssConfig放在插件目录下,里面有两个配置文件1.config.ini这个配置是否开启自动附加,true=自动附加2.Process.ini这个是存放进程附加的进程名记得加上后辍名 运行x64dbg后会以此判配置里面的进程是否存在,当检测到进程存在 会自动进行附加当前存在的一条,下面的则不会在进行执行。 3.特征码.ini 这个是存放特征码的配置文件]
2022/11/13
1.根据cxl哥们的建议,把特征码搜索。整合在了一个文件夹。每次打开插件前会询问是否进行特征码搜索。这个我知道有点烦人,要尊求大哥们的选择。自己悄悄的去执行搜索不太好。
2.特征码增加偏移定位+多少偏移 或者-多少偏移 定位到你真正需要的地址[例子请看 HssConfig文件下的特征码.ini 我默认是+0 -0 意思是没有偏移 定位到特征码搜索的地址这个逻辑判断差点把我写晕了]
2022/11/18
1.优化特征码搜索[增加选择是否调用内置搜索]
2.内存申请添加到引用
3.特征码搜索完成添加到引用
2022/11/19 [今年可能最后以此更新了,要去工地搬砖了 过年回来在继续优化]
1.去除ini配置文件,改为xml 有利于更好的开发更新
2.优化流程
2022/11/23
1.优化调用地址选择否也执行导致被调试程序崩溃的BUG
2023/1/7
1.修复自动搜索特征码在填写模块名的情况下会导致搜索不到的BUG
2.根据cxl哥们的建议 增加暂停,以及函数搜索 (如:MessageBoxA)
3.新增转到地址,判断是否为静态地址(静态地址=绿色否则=黑色支持:直接地址 模块+偏移 以及 模块)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
<huaishushu>
<!--自动附加 true=[自动附加] false=[不自动附加]-->
<Autoattach>false</Autoattach>
<!--搜索模式:1 2[插件搜索模式]-->
<pattern>2</pattern>
<!--自动搜索特征码 true=[自动搜索] false=[不自动搜索]-->
<Automaticsearch>true</Automaticsearch>
</huaishushu>
<!--以下是自动附加的进程名称 请按照格式添加-->
<Process>
<ProcessName>QQ.exe</ProcessName>
<ProcessName>KuGou.exe</ProcessName>
</Process>
<!--以下是自动搜索的特征码-->
<code>
<!--搜索特征是否自动跳转搜索地址 true=[自动跳转] false=[不自动跳转]-->
<Jump>true</Jump>
<!--deviation:偏移定位[+或-]来达到你真正需要的定位地址-->
<!--ModuleName:模块名称 从哪个模块开始搜 如:ModuleName="QQ.exe" Prt忽略直接填NULL-->
<IDC features="558BEC83EC18535657894DE88B45088B480C518B55088B4208508B4D088B5104528B45088B08518B4DE8E8" name="易语言按钮事件" deviation="+6D">
<modular>
<entrance ModuleName="" Prt="NULL"/>
</modular>
</IDC>
<IDC features="83EC0C33C0568B74241C578B7C2418C707000000008B4E1485C9" name="载入窗口" deviation="+0">
<modular>
<entrance ModuleName="" Prt="NULL"/>
</modular>
</IDC>
<IDC features="8D44240883EC0C50FF74241433C0894424088944240C894424108D54240852FFD38B44240C8B5424108B4C241483C418C3" name="易语言核心支持库" deviation="+0">
<modular>
<entrance ModuleName="" Prt="NULL"/>
</modular>
</IDC>
</code>
<!--是否强制执行不用弹出确认提示 true=[强制执行] false=[不强制]-->
<Enforcement>
<implement>false</implement>
</Enforcement>
<!--是否函数默认分析 true=[默认分析] false=[不默认分析]-->
<function>
<analysis>true</analysis>
</function>
<!--是否跳转引用 true=[跳转] false=[不跳转]-->
<quote>
<excerpt>true</excerpt>
</quote>
<!--是否每次搜索跳到主模块基质处开始搜索 true=[跳到基质处] false=[不跳到基质处]-->
<!--为false的情况下 如果你申请有内存,在内存申请的地址开始搜索特征码会导致x64dbg奔溃-->
<head>
<modularhead>true</modularhead>
</head>
<!--刷新视图 true=[刷新所有] false=[刷新反汇编]-->
<UpdateDisassem>
<RefreshDisassem>true</RefreshDisassem>
</UpdateDisassem>
</config>
判断是否为静态地址
修改修改xml里面的配置就行了。自己添加特征码请按格式添加。xml设置起来比ini方便多了
懵逼的,这个有什么用? 大佬,我还是觉得可以增加直接自动调用e-debug 里E_MapPlus特征文件比较快捷,或者搜索同目录的特征码文件,因为那些文件本来就可以手动添加,e-debug还只能在指针处开始分析,有些加壳的程序转到0040100处分析直接就崩了。
如果一个插件集成了多功能就肯定会喜欢方便强大的,还是辛苦大佬了,这个行4dbg的插件比od的难的多了,大家有分给分,没分留个评论支持下大佬! 看的不明所以。 不是原来就是支持ctrl+b搜索的吗 谢谢分享! 这个好,自带的的搜索好像只能从指针开始的地方往后搜索,没法全局 谢谢!期待64位的到来 以前od的特征码定位非常好用,x64dbg终于有了. 期待完善的更好 感谢分享