吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1613|回复: 29
收起左侧

[讨论] x64dbg里边运行Python脚本到底有多坑爹?

[复制链接]
冥界3大法王 发表于 2023-4-20 21:01
https://www.52pojie.cn/thread-1774906-2-1.html
就是最近发现的这个插件,这是目前的第三款Python插件。
x64dbg插件页(最顶上的那个)需要安装多个支持
(52破解的那贴里的那个)简单些,但是你还得配合虚拟机远程调试

image.png
经虚拟机 和本机多次实验,才发现这东西有兼容性问题,会让调试器崩溃。
或有的版本明明也达到oep了,调试器还是在卡顿后退出了。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
daoye9988 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

whyida 发表于 2023-4-22 12:00

可以用也可以不用联虚拟机。
找upx oep脚本
[Python] 纯文本查看 复制代码
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()

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
冥界3大法王 + 3 + 1 用心讨论,共获提升!

查看全部评分

 楼主| 冥界3大法王 发表于 2023-4-22 13:44
whyida 发表于 2023-4-22 12:00
可以用也可以不用联虚拟机。
找upx oep脚本
[Python] 纯文本查看 复制代码
from LyScript32 import MyDebug ...[/quote]

@whyida
我从主页上复制了几个实验
譬如下面的这个
[mw_shl_code=cpp,true]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
 楼主| 冥界3大法王 发表于 2023-4-20 21:40

原来,不是有导入模块的行,就一定是Python里边用的。。。
我觉得这东西还是不如x64dbg的原生脚本+我用Delphi生成的脚本生成器来得方便。。。至少很多东西是指哪打哪。。。这倒好,用一个新问题解决一个老问题。结果老的也没有通透,新的也没有娴熟。。。
 楼主| 冥界3大法王 发表于 2023-4-20 21:58
https://blog.csdn.net/yan_star/article/details/113621948
他这个的实现,我用纯脚本,也一样能做到。
TXtianxing 发表于 2023-4-20 22:25

谢谢,明白了
努力画图 发表于 2023-4-21 06:38
众里寻他千百度   
only998 发表于 2023-4-21 07:40
我举得python可能不太适合x64dbg,太重了,虽然功能很多,但是依赖也很多,要编译起来也困难。不如用c++写一个原生的脚本,或者拿lua之类的来改改。
daoye9988 发表于 2023-4-21 08:05
脚本够用就好
yangand 发表于 2023-4-21 09:05
我原来试PYTHON脚本的时候,第一次可以正常运行,多试几次,好像就会崩。再打开X64DGB,又是开始可以,后来不行
 楼主| 冥界3大法王 发表于 2023-4-21 09:33
yangand 发表于 2023-4-21 09:05
我原来试PYTHON脚本的时候,第一次可以正常运行,多试几次,好像就会崩。再打开X64DGB,又是开始可以,后来 ...

原来大家都有遇到不是驴不走,就是磨不转的情况啊。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表