-
-
[原创]x64dbg---x64dbgpy
-
2023-9-30 21:51
9086
-
x64dbg---x64dbgpy
简介
https://github.com/x64dbg/x64dbgpy/
x64dbgpy 是一个插件,可以使用 python 脚本自动化调试过程
安装
需要下载的文件看这里: https://github.com/x64dbg/x64dbgpy/releases
- 需要同时安装 python2.7 的 x64 和 x86 版本,可以改一下安装目录,比如 x86 的就装在
C:\\python27_x86
目录下
- x64dbgpy(如x64dbgpy_8c0538a.zip)不需要复制到x64dbg安装目录, 解压按位数复制到插件目录就好了,最外面的 .h 文件和 .lib 文件不用管
x64dbgpy_8c0538a\x32\plugins -> snapshot_2023-09-21_00-53\release\x32\plugins
如果已经安装了其它插件,需要把plugins里的文件复制到相应同名目录下
示例脚本
大部分函数都可以在 x64dbg/release/x32/plugins/x64dbgpy/x64dbgpy/pluginsdk/x64dbg.py 找到
简单脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 | from x64dbgpy.pluginsdk import x64dbg
from x64dbgpy.pluginsdk import memory
x64dbg.SetBreakpoint( 0x00401235 )
x64dbg.Run()
name = memory.Read( 0x00406930 , 0xFF )
print ( 'name: {}' . format (name))
|
简单脚本2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from x64dbgpy.pluginsdk import x64dbg
x64dbg.SetBreakpoint( 0x0040133B )
x64dbg.SetBreakpoint( 0x004013A6 )
x64dbg.Run()
serial = ''
for i in range ( 10 ):
dl = x64dbg.GetDL()
serial + = chr (dl)
x64dbg.SetBL(dl)
x64dbg.Run()
print (serial)
x64dbg.Run()
|
简单脚本3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | from x64dbgpy.pluginsdk import x64dbg
from x64dbgpy.pluginsdk import memory
def get_ansi_str(addr):
final_str = ''
i = 0
while True :
c = memory.Read(addr + i, 1 )
if c = = '\x00' :
break
final_str + = c
i + = 1
return final_str
def get_wide_str(addr):
final_str = ''
i = 0
while True :
c = memory.Read(addr + i, 2 )
if c = = '\x00\x00' :
break
final_str + = c
i + = 2
return final_str
x64dbg.DbgScriptCmdExec( 'bp kernelbase.CreateFileW' )
while True :
x64dbg.Run()
rcx = x64dbg.GetRCX()
create_file_path = get_wide_str(rcx).replace( '\x00' , '')
if 'encrypted.bin' in create_file_path:
break
|
MISC
函数在 x64dbg.py 里,scriptapi.pyd 也可以用,但写代码时提示不友好
函数名可以整个文件夹搜,这样比较快
如果出错了,调试器里还有 python 交互窗口,在里面 import 试一下
建议在 x64dbg\release\x32\plugins\x64dbgpy 文件夹里写脚本,这样不会出现引用错误,整个文件夹在 vscode 打开,写脚本和搜索api都很方便
想引用label.py中的函数
from x64dbgpy.pluginsdk import label
2020/8/15
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。