首页
社区
课程
招聘
[原创]x64dbg---x64dbgpy
发表于: 2023-9-30 21:51 10657

[原创]x64dbg---x64dbgpy

2023-9-30 21:51
10657

https://github.com/x64dbg/x64dbgpy/
x64dbgpy 是一个插件,可以使用 python 脚本自动化调试过程

需要下载的文件看这里: https://github.com/x64dbg/x64dbgpy/releases

大部分函数都可以在 x64dbg/release/x32/plugins/x64dbgpy/x64dbgpy/pluginsdk/x64dbg.py 找到

简单脚本

简单脚本2

简单脚本3

函数在 x64dbg.py 里,scriptapi.pyd 也可以用,但写代码时提示不友好
函数名可以整个文件夹搜,这样比较快

如果出错了,调试器里还有 python 交互窗口,在里面 import 试一下

建议在 x64dbg\release\x32\plugins\x64dbgpy 文件夹里写脚本,这样不会出现引用错误,整个文件夹在 vscode 打开,写脚本和搜索api都很方便

想引用label.py中的函数
from x64dbgpy.pluginsdk import label

2020/8/15

# coding:utf8
'''
设置断点,读内存
'''
 
from x64dbgpy.pluginsdk import x64dbg
from x64dbgpy.pluginsdk import memory
 
x64dbg.SetBreakpoint(0x00401235)
x64dbg.Run()
# 地址 长度
name = memory.Read(0x00406930, 0xFF)
print('name: {}'.format(name))
# coding:utf8
'''
设置断点,读内存
'''
 
from x64dbgpy.pluginsdk import x64dbg
from x64dbgpy.pluginsdk import memory
 
x64dbg.SetBreakpoint(0x00401235)
x64dbg.Run()
# 地址 长度
name = memory.Read(0x00406930, 0xFF)
print('name: {}'.format(name))
# coding:utf8
 
'''
拼接字符串
'''
 
from x64dbgpy.pluginsdk import x64dbg
 
x64dbg.SetBreakpoint(0x0040133B# compare
x64dbg.SetBreakpoint(0x004013A6# right message
x64dbg.Run()
 
serial = ''
for i in range(10):
    dl = x64dbg.GetDL()
    serial += chr(dl)
    x64dbg.SetBL(dl)
    x64dbg.Run()
print(serial)
x64dbg.Run()
# coding:utf8
 
'''
拼接字符串
'''
 
from x64dbgpy.pluginsdk import x64dbg
 
x64dbg.SetBreakpoint(0x0040133B# compare
x64dbg.SetBreakpoint(0x004013A6# right message
x64dbg.Run()
 
serial = ''
for i in range(10):
    dl = x64dbg.GetDL()
    serial += chr(dl)
    x64dbg.SetBL(dl)
    x64dbg.Run()
print(serial)
x64dbg.Run()
# coding:utf8
 
'''
获取指定地址的字符串并比较
'''
 
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

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-9-30 23:08
1
雪    币: 2945
活跃值: (3762)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2023-10-1 00:02
0
雪    币: 6095
活跃值: (5510)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
4
感谢分享!
2023-10-1 09:06
0
雪    币: 1856
活跃值: (1221)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2023-10-1 09:46
0
雪    币: 196
活跃值: (2224)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
感谢分享
2023-10-2 17:00
0
雪    币: 9
活跃值: (180)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2024-4-1 14:46
0
游客
登录 | 注册 方可回帖
返回
//