LyScript icon indicating copy to clipboard operation
LyScript copied to clipboard

您好,感谢您的工具,我这边测试32位没问题,64位能够连接上,但是没法获取寄存器并且执行命令?

Open de8gman1990 opened this issue 2 years ago • 12 comments

测试脚本: from LyScript64 import MyDebug

if name == "main": dbg = MyDebug(address="127.0.0.1") connect_flag = dbg.connect() print("isok:{}".format(connect_flag))

rax = dbg.get_register("rax")
RBX = dbg.get_register("RBX")
rip = dbg.get_register("rip")

# 检测套接字是否还在
ref = dbg.is_connect()
print("是否在连接: ", ref)
ref = dbg.is_debugger()
print(ref)
ref = dbg.is_running()
print(ref)

提示信息中isdebug以及isrunning均为false: $ python test64.py isok:1 是否在连接: True False False 测试程序目前在入口断点处

感谢!

de8gman1990 avatar May 16 '22 02:05 de8gman1990

使用的x64dbg_2022_03_26~

de8gman1990 avatar May 16 '22 03:05 de8gman1990

image

入口处获取到的参数是0,会返回False

lyshark avatar May 16 '22 05:05 lyshark

插件功能,经过了多次验证,您使用 Mar 21 2022 (TitanEngine) 试试

lyshark avatar May 16 '22 05:05 lyshark

问题将在下次更新修复,感谢反馈!

lyshark avatar May 16 '22 05:05 lyshark

您好,您那边测试环境是win10?我这边测试win7 本地远程64位都可以了,换了个linux远程连接目标win7也是获取不到寄存器值和执行单步命令:

python3 test64.py

rax = 0x0 eax = 0x0 ax =0x0 获取R系列寄存器: 0x0 是否在连接: True False False rax = 0x0 RBX = 0x0 rip = 0x0 rip = 0x0

换了个本机win10连接本机也是一样。寄存器获取失败,单步命令执行不了: rax = 0x0 eax = 0x0 ax =0x0 获取R系列寄存器: 0x0 是否在连接: True False False rax = 0x0 RBX = 0x0 rip = 0x0 rip = 0x0 您那边好复现吗?我的完整脚本内容: from LyScript64 import MyDebug

if name == "main": dbg = MyDebug(address="127.0.0.1") connect_flag = dbg.connect()

rax = dbg.get_register("rax")
eax = dbg.get_register("eax")
ax = dbg.get_register("ax")

print("rax = {} eax = {} ax ={}".format(hex(rax),hex(eax),hex(ax)))

r8 = dbg.get_register("r8")
print("获取R系列寄存器: {}".format(hex(r8)))

rax = dbg.get_register("rax")
RBX = dbg.get_register("RBX")
rip = dbg.get_register("rip")

# 检测套接字是否还在
ref = dbg.is_connect()
print("是否在连接: ", ref)
ref = dbg.is_debugger()
print(ref)
ref = dbg.is_running()
print(ref)

print("rax = {}".format(hex(rax)))
print("RBX = {}".format(hex(RBX)))
print("rip = {}".format(hex(rip)))

dbg.set_debug("StepIn")

rip = dbg.get_register("rip")
print("rip = {}".format(hex(rip)))
#dbg.run_command_exec("g")

dbg.set_debug("StepIn")

dbg.run_command_exec("InstrUndo")
dbg.run_command_exec("InstrUndo")

dbg.close()

de8gman1990 avatar May 16 '22 08:05 de8gman1990

不确定是什么问题,在上述无法用LyScript64获取寄存器状态下,测试LyScript32 去连接是可以执行StepIn和InstrUndo这种命令的,证明应该是连接成功了,当然只是换下库瞎测试下,32位的LyScript32获取不了64位寄存器状态

de8gman1990 avatar May 16 '22 08:05 de8gman1990

抓包测试了下,LyScript64在我的kali和win10上使用都是建联之后只发了一个数据包内容为Exit(对应dbg.close()),然后就退出了,脚本里的控制指令都没发出去。用pip方式安装的,很奇怪。。win7没有问题

de8gman1990 avatar May 17 '22 01:05 de8gman1990

image

目前只在windows10系统下测试通过

lyshark avatar May 17 '22 02:05 lyshark

执行命令

image

lyshark avatar May 17 '22 02:05 lyshark

您要测试的代码没任何问题。

image

lyshark avatar May 17 '22 02:05 lyshark

目前只支持在windows10系统下使用,如果在linux安装pip包,请自行调整,插件pip包是开源的。

lyshark avatar May 17 '22 02:05 lyshark

嗯嗯感谢,我这边就是反而测试的win7可以,win10不行,刚才用您的python3.8.5也不行,稍等我有空再看下python里的代码。感谢您的回复!

de8gman1990 avatar May 17 '22 02:05 de8gman1990