-
-
[原创]x64dbg脚本 - 解决调试时编排函数调用
-
发表于:
2019-9-27 09:53
10499
-
[原创]x64dbg脚本 - 解决调试时编排函数调用
一直没怎么使用x64dbg脚本功能,而且官方的文档命令的例子也不多,所以整理了下,解决的问题来原于这次Q3的CTF第5题,在做3DES的时候,程序逻辑为:
上面的CTF相关的内容就略了,其中需要逆向得到Dest的值,需要对上面的三次调用逆过程执行,基本为:
如果手工调试,可以在断点到对应函数后,通过修改参数来实现,但是因为顺序问题,需要3次完成调试,其中在使用脚本语言相关的调试的时候,是可以在调试阶段,动态去调用一些函数,来测试结果的,所以想着是不是有办法做到类似的功能(本来想看是不是有插件可以,没有找到),就开始找办法实现。
在二进制里要实现上面的调用,想到的一个思路是通过动态写汇编来执行:
1,先创建一块调试临时内存区域用来存放需要写的汇编;
2,将上面的逆过程以汇编的方式写到内存区域;
3,在调试的时候,执行到合适的断点后,进入上面的汇编获取结果;
根据上面的方式,分别要解决几个问题:
1,内存分配:alloc
2,des_Func_de|des_Func_en的调用参数和地址:通过查看原来的内容获取:
des_Func_de :
3, 写入汇编还是shellcode ?通过查看手册,其实x64dbg的汇编器是可以调用的:asm 命令;
接下来就是coding和debug的过程,不细说了,有一些命令不熟悉,自己也摸索了下;
说明:最后Demo了一下按字节显示的格式,官方文档没提命令需要加“”,而且有一些格式不加“”也可以,有点乱。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-9-27 17:42
被nevinhappy编辑
,原因: