HHD Software Hex Editor Neo 7.5爆破后遗症(重启或关闭的治愈)

查看 86|回复 9
作者:冥界3大法王   
在看雪论坛下载了一个7.5的PJ的DLL后发现 多等一会 进行一些操作,还是会重启 或 退出程序(一般是前者)
回贴反馈,作者说 没测试出来。。。无果。。。。
算了求人还是不如求己。。。还是自己来吧。
打开AI (https://ai.dangbei.com/chat/369881136872058693)
还是先问一下它吧。
问题:
qt程序是如何实现的重启自身的?请从编程机制上 和 x64dbg反汇编修改(取消重启)两方面 来说说解决策略。

Qt程序实现自身重启的机制及反汇编修改策略
编程机制实现重启
Qt程序通常通过以下几种方式实现自身重启:
1. QProcess方式(最常用)
cpp void restartApplication() {     qApp->quit(); // 退出当前应用     QProcess::startDetached(qApp->applicationFilePath(), qApp->arguments()); }
2. 系统特定方法
在Windows上:
cpp #include   void restartApplication() {     QString program = qApp->applicationFilePath();     QStringList args = qApp->arguments();          // 使用ShellExecute     ShellExecuteW(NULL, L"open", program.toStdWString().c_str(),                   args.join(" ").toStdWString().c_str(),                   NULL, SW_SHOWNORMAL);     qApp->quit(); }
3. 使用定时器延迟重启
cpp void delayedRestart() {     QTimer::singleShot(1000, [](){         QProcess::startDetached(qApp->applicationFilePath(), qApp->arguments());         qApp->quit();     }); }
x64dbg反汇编修改策略
要取消Qt程序的重启功能,可以通过x64dbg进行逆向修改:
1. 定位重启代码
[ol]
  • 搜索字符串:搜索"restart"、"reboot"等关键词
  • API断点:在以下API设置断点:
  • QProcess::startDetached
  • ShellExecute/ShellExecuteW
  • CreateProcess
  • system或_wsystem
  • 调用堆栈分析:触发重启功能后查看调用堆栈
    [/ol]
    2. 修改策略
    找到重启代码后,可以:
    方案1:NOP填充
    将调用重启功能的指令替换为NOP(0x90)指令
    原指令: call QProcess::startDetached  修改为: nop nop nop nop nop
    方案2:修改跳转
    找到重启的条件判断,修改跳转逻辑:
    原指令: jne 地址A  ; 如果条件满足则跳转到重启代码  修改为: jmp 地址B  ; 直接跳转到不重启的代码
    方案3:修改返回值
    如果重启是通过函数返回值决定的:
    原指令: mov eax, 1  ; 返回1表示需要重启  修改为: mov eax, 0  ; 返回0表示不需要重启
    3. 具体操作步骤
    [ol]
  • 在x64dbg中运行目标程序
  • 触发重启功能,让程序暂停在重启代码处
  • 分析反汇编代码,找到关键跳转或调用
  • 右键选择"汇编"或"补丁"功能修改指令
  • 保存修改后的可执行文件
    [/ol]
    4. 注意事项
  • 修改前备份原始文件
  • 注意指令长度,新指令不应比原指令长
  • 修改后需要测试程序其他功能是否正常
  • 对于加壳程序,需要先脱壳再修改

    通过以上方法,可以有效定位并取消Qt程序的重启功能。
    先把已经搜集的资料进行去伪存真,进行断点设置 和 模块中进行搜索   和 跨模块调用中进行一通查找。。。下断。
    接下来到软件中不停的切换编码,搜索 字符串 和 16进制 数据,以便更快的触发 重启。。。结果发现不久断到了下面的地方。修改后卡顿了一下,之后就不再触发了。


    image.png (186.73 KB, 下载次数: 0)
    下载附件
    2025-9-22 11:37 上传

    最终实测发现修改上面的地方,似乎就可以了,更多有待观察和发现。

    重启, 指令

  • slkj   

    技术贴,支持一下。。
    是战是和   

    感谢分享!
    chishingchan   

    怪不得作者说没测试出来!主程序爆破了,稳定性可能存在问题呢。
    冥界3大法王
    OP
      


    chishingchan 发表于 2025-9-22 12:41
    怪不得作者说没测试出来!主程序爆破了,稳定性可能存在问题呢。
    还不够彻底,退出调试器还是会重启。。。继续观察。。。
    还有WinVerifyTrust的校验。
    fengzt   

    这ai没用过
    wbz_007   

    楼主威武,厉害
    mnp818   

    这个没见过,需要学习一下
    dglaobing   

    虽然看不懂,但是一看就是大N贴
    啊笨   

    用了一下这个AI,好像也没太大差别
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部