如何在OD中为Delphi程序添加按钮点击事件

如何在OD中为Delphi程序添加按钮点击事件,第1张

用 OD 捕获按钮事件,可以尝试以下办法:

1、通过编写好的脚本来获取按钮事件:

先将以下脚本保存至 .txt 文件中:

var Addr

mov Addr,401000

loop:

find Addr,#740E8BD38B83????????FF93????????#

cmp $RESULT,0

je Exit

add $RESULT,0A

bp $RESULT

add $RESULT,1

mov Addr,$RESULT

jmp loop

Exit:

ret

用OD载入 Delphi 程序,右键 运行脚本-->打开,选择上面保存的文件,运行,如果d出了script finished 窗口就表示找到按钮事件断点位置。

2、用资源编辑工具+十六进制编辑工具来查找:

首先用ResScope或者其他工具打开目标程序,在RCData中能够找到窗体的资源信息,例如

  object Form1: TForm1

    object Button1: TButton

      Caption = 'Button1'

      OnClick = Button1Click

    end

  end

  此时假设我们要找“Button1”按钮事件,记住OnClick的名字(在这里就是Button1Click)

  然后再用WinHex打开程序,查找事件名“Button1Click”,如下图所示: 事件名的前一个字节就是事件名的长度,再前面就是事件地址了:

找到地址后,用 OD载入程序,直接Ctrl+G前往该地址。

可以考虑使用 OnMouseDown 事件,并在 OnMouseDown 事件代码里,设置一个变量 为 True,用于指示当前“鼠标按下按钮”,当用户松开鼠标按钮后,编写 OnMouseUp 事件,并将上面的变量设置为 False,用于指示当前用户松开了按键。

此外, OnDragDrop 、OnDragOver 事件也可以用于“鼠标按下不松”的拖放过程。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11823831.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存