吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 876|回复: 7
收起左侧

[求助] 按下Shift+F9编译x64dbg的插件,加了调用函数执行脚本命令的一行

[复制链接]
冥界3大法王 发表于 2023-5-5 18:55
按下Shift+F9编译x64dbg的插件,加了调用函数执行脚本命令的一行(详见下文:标红加粗的行!
没报错,但也没有效果,这是为什么呢?
话说故事还得从法王云游列国说起
从国际友好联邦下载了一个胡嫩的,完整的Delphi源码(看样子该是Chinese人搞的)
https://wwgc.lanzouy.com/iB6T40urt2uj
就一刻也不停息的回家做起了试验


打开MoreTool.pas:


procedure RegisterMenuProc(cbType: cbType; callbackinfo: Pointer); cdecl;
var
  info: PPLUG_CB_MENUENTRY;
begin
  info := PPLUG_CB_MENUENTRY(callbackinfo);
  case (info^.hEntry) of
    MENU_CALC:
      begin
        ShellExecuteA(GuiGetWindowHandle, 'OPEN', 'calc.exe', '', 'C:\Windows\system32', SW_SHOWNORMAL);
      end;
    MENU_NOTEPAD:
      begin
        ShellExecuteA(GuiGetWindowHandle, 'OPEN', 'notepad.exe', '', 'H:\ISO光盘及软盘镜像\启动管理效率提升', SW_SHOWNORMAL);
        DbgCmdExec('bp 0040100E');
      end;
    MENU_DISASM_CALC:
      begin
        ShellExecuteA(GuiGetWindowHandle, 'OPEN', 'calc.exe', '', 'C:\Windows\system32', SW_SHOWNORMAL);
      end;
    MENU_DISASM_NOTEPAD:
      begin
        ShellExecuteA(GuiGetWindowHandle, 'OPEN', 'notepad.exe', '', 'H:\ISO光盘及软盘镜像\启动管理效率提升', SW_SHOWNORMAL);
       DbgCmdExec('bp 0040100E');
      end;
  end;
end;





function notepad(argc: Integer; argv: PPAnsiChar): Boolean; cdecl;
begin
  ShellExecuteA(GuiGetWindowHandle, 'OPEN', 'notepad.exe', '', 'H:\ISO光盘及软盘镜像\启动管理效率提升', SW_SHOWNORMAL);
  DbgCmdExec('bp 0040100E');     加上PAChar(XXX)不报错,通样没效果
end;




bridgemain.pas
函数是下面这样的:

{BRIDGE_IMPEXP bool}    function DbgCmdExec(const cmd: PAChar): Boolean; cdecl; external x32_BRIDGE;
{BRIDGE_IMPEXP bool}    function DbgCmdExecDirect(const cmd: PAChar): Boolean; cdecl; external x32_BRIDGE;




x32dbg日志窗口中:

[插件] MoreTool v1 已经载入!
[插件,MoreTool] 命令 "Calc" 已经注册!
[插件,MoreTool] 命令 "Notepad" 已经注册!
[***] MoreTool Plugin v1 by remek002

显然已经成功加载了。
点下拉菜单也成功打开记事本,就是脚本并没有执行下断啊~~





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

无闻无问 发表于 2023-5-5 20:58
我觉得ShellExecuteA执行,程序跑起来了,断点处指令已经跑过了……

不知对不
 楼主| 冥界3大法王 发表于 2023-5-5 21:02
无闻无问 发表于 2023-5-5 20:58
我觉得ShellExecuteA执行,程序跑起来了,断点处指令已经跑过了……

不知对不

不知道啊,一会开个x32dbg自己调试自己。
 楼主| 冥界3大法王 发表于 2023-5-5 21:31
无闻无问 发表于 2023-5-5 20:58
我觉得ShellExecuteA执行,程序跑起来了,断点处指令已经跑过了……

不知对不

大哥那是delphi的执行程序的命令,差点被你误导。
 楼主| 冥界3大法王 发表于 2023-5-6 07:02
本帖最后由 冥界3大法王 于 2023-5-6 11:09 编辑

@无闻无问 成功了,编译32位的。。。下断的脚本不成功。。

64位的完全正常,同时也可以发送多个,还不用设置延迟。。
就是有1点不明白,为啥要设置两次?


MENU_NOTEPAD:  这个是创建菜单项?
MENU_DISASM_NOTEPAD: 菜单目录记事本?
经测试2个都是有用的,不知为何要如此作为?
分别设置个执行脚本下断命令就测试出来了
有时第1个起作用,有时第2个起作用。


下面那处调用再添加就没啥用了。但函数不能少。
无闻无问 发表于 2023-5-6 10:22
法王牛啊…

你不用ShellExecuteA启动程序,而用CreateProcess启动并debug看看……
 楼主| 冥界3大法王 发表于 2023-5-6 10:56
本帖最后由 冥界3大法王 于 2023-5-6 10:58 编辑
无闻无问 发表于 2023-5-6 10:22
法王牛啊…

你不用ShellExecuteA启动程序,而用CreateProcess启动并debug看看……

@无闻无问
又试了下复制到其他版本的x32dbg/plugins下,则OK,原因未知,看来恐怕难保完全兼容。
如今咱的x64dbg法王编译修改版,各方面性能算是比较优越了。。。超越原版舒适度数倍。
想不想来一个感受下?

x64dbg原生修改仿OD断点列表(插件)在朋友的帮助下,还差一点点就可以完工了(在原版调试器源码基础上修改UI),正在调试学习测试中。
无闻无问 发表于 2023-5-6 10:59
冥界3大法王 发表于 2023-5-6 10:56
@无闻无问
又试了下复制到其他版本的x32dbg/plugins下,则OK,原因未知,看来恐怕难保完全兼容。
如今 ...

可以来个噻
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 21:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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