x64dbg里边运行Python脚本到底有多坑爹?
https://www.52pojie.cn/thread-1774906-2-1.html就是最近发现的这个插件,这是目前的第三款Python插件。x64dbg插件页(最顶上的那个)需要安装多个支持
(52破解的那贴里的那个)简单些,但是你还得配合虚拟机远程调试
经虚拟机 和本机多次实验,才发现这东西有兼容性问题,会让调试器崩溃。
或有的版本明明也达到oep了,调试器还是在卡顿后退出了。 冥界3大法王 发表于 2023-4-22 11:34
哈哈,我明白了。
可以用也可以不用联虚拟机。
找upx oep脚本
from LyScript32 import MyDebug
if __name__ == "__main__":
# 初始化
dbg = MyDebug()
# 连接到调试器
connect_flag = dbg.connect()
print("连接状态: {}".format(connect_flag))
# 检测套接字是否还在
ref = dbg.is_connect()
print("是否在连接: ", ref)
is_64 = False
# 判断是否时64位数
if is_64 == False:
currentIP = dbg.get_register("eip")
if dbg.read_memory_word(currentIP) != int(0xBE60):
print("[-] 可能不是UPX")
dbg.close()
patternAddr = dbg.scan_memory_one("83 EC ?? E9 ?? ?? ?? ?? 00")
print("匹配到的地址: {}".format(hex(patternAddr)))
dbg.set_breakpoint(patternAddr)
dbg.set_debug("Run")
dbg.set_debug("Wait")
dbg.delete_breakpoint(patternAddr)
dbg.set_debug("StepOver")
dbg.set_debug("StepOver")
print("[+] 程序OEP = 0x{:x}".format(dbg.get_register("eip")))
else:
currentIP = dbg.get_register("rip")
if dbg.read_memory_dword(currentIP) != int(0x55575653):
print("[-] 可能不是UPX")
dbg.close()
patternAddr = dbg.scan_memory_one("48 83 EC ?? E9")
print("匹配到的地址: {}".format(hex(patternAddr)))
dbg.set_breakpoint(patternAddr)
dbg.set_debug("Run")
dbg.set_debug("Wait")
dbg.delete_breakpoint(patternAddr)
dbg.set_debug("StepOver")
dbg.set_debug("StepOver")
print("[+] 程序OEP = 0x{:x}".format(dbg.get_register("eip")))
dbg.close() whyida 发表于 2023-4-22 12:00
可以用也可以不用联虚拟机。
找upx oep脚本
from LyScript32 import MyDebug ...
@whyida
我从主页上复制了几个实验
譬如下面的这个
from LyScript32 import MyDebug
if __name__ == "__main__":
dbg = MyDebug()
connect_flag = dbg.connect()
print("连接状态: {}".format(connect_flag))
size = dbg.size_from_name("win32.exe")
print("长度: {}".format(size))
dbg.close()
第2个print等待中。。。 类似的取模块基址的。。。也是等待中 谢谢,明白了
rxjz88888 发表于 2023-4-20 21:27
谢谢,明白了
原来,不是有导入模块的行,就一定是Python里边用的。。。
我觉得这东西还是不如x64dbg的原生脚本+我用Delphi生成的脚本生成器来得方便。。。至少很多东西是指哪打哪。。。这倒好,用一个新问题解决一个老问题。结果老的也没有通透,新的也没有娴熟。。。 https://blog.csdn.net/yan_star/article/details/113621948
他这个的实现,我用纯脚本,也一样能做到。
谢谢,明白了 众里寻他千百度 {:1_893:} 我举得python可能不太适合x64dbg,太重了,虽然功能很多,但是依赖也很多,要编译起来也困难。不如用c++写一个原生的脚本,或者拿lua之类的来改改。 脚本够用就好 我原来试PYTHON脚本的时候,第一次可以正常运行,多试几次,好像就会崩。再打开X64DGB,又是开始可以,后来不行 yangand 发表于 2023-4-21 09:05
我原来试PYTHON脚本的时候,第一次可以正常运行,多试几次,好像就会崩。再打开X64DGB,又是开始可以,后来 ...
原来大家都有遇到不是驴不走,就是磨不转的情况啊。