我有被赋予(没有源代码),其与一个“更新”按钮,然后执行被点击后很长的更新将打开一个窗口MFC应用程序。

我想修改程序,从而当创建窗口(或其他地方如的DoModal),消息被发送到程序,使其认为按钮被按下。

我一直在玩弄围绕这一对井田Pro和OllyDbg的一阵无济于事。我看着可能使用PumpMessage,但这并没有带来任何成功。

任何意见?

有帮助吗?

解决方案

如果你不喜欢使用辅助“宏观”方案的想法,你可以修补原始程序的二进制调用按钮的BM_CLICK处理程序。 >“选择”从右键点击 - 如果你能找到呼叫(最少5个字节不带参数)一些空间,你可以用OllyDbg的单独(编辑代码后,将其选中,然后选择“复制到可执行文件”做到这一点菜单)。否则,你需要创建一个PE编辑一个新的代码段(例如LordPE或PE工具),并添加您的代码中有(通常你要在程序的调用更改为跳转到你的部分,在这里你执行原来的呼叫加上呼叫按钮的点击处理程序,然后你打补丁后跳跳回到老位置)。

其他提示

有几种方法使用自动化测试技术来做到这一点,但最简单的就是简单地得到的窗口句柄你想要的按钮,它发送一个的 BM_CLICK消息。这里假设你有Windows的C / C ++的应用知识。如果没有,在使用.NET或其他技术等手段。我不熟悉IDA-Pro或OllyDbg的。

请参阅此Perl模块,的Win32 :: guitest它可以帮助你做this.you可以用它写一个Perl脚本,并在程序中嵌入它。或者您可以使用Win32 API,它包装你的需求和所需使用它。

只要创建一个第二个程序,将午餐,并会使用的 SendInput(...)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top