-
-
[原创]修改易语言EXE程序让它不按ESC退出
-
发表于:
2019-7-24 16:55
5682
-
很多时候,我们发现一些小程序很有用,但是粗心的作者用易语言开发的过程中,并没设置主程序是否按ESC不退出,所以有了下面的逆向过程。
一般见的最多或者最先想到的是下断点,exitprocess是结束主程序的断点,但是我尝试下 bp ExitProcess 和 bp TerminateProcess的过程中,发现并没有有效的阻止程序退出,
后来,尝试销毁窗体 bp DestroyWindow 的API断点,虽然能断下来,但是修改相关代码后,发现还是不能阻止退出
后来,想到了消息发送方式:bp SendMessageA,果不其然,这次修改相关代码后,就不会按ESC退出了
对发送消息下断,看堆栈,分析消息ID是第几个参数
0018FCEC 0041108A /CALL 到 SendMessageA 来自 test.00411088
0018FCF0 00230998 |hWnd = 0x230998
0018FCF4 00000080 |Message = WM_SETICON
0018FCF8 00000001 |wParam = 0x1
0018FCFC 25800B8D \lParam = 0x25800B8D
看反汇编窗口,参数设置为:
00411079 |. 8B3D BCC34700 mov edi,dword ptr ds:[<&USER32.SendMessa>; user32.SendMessageA
0041107F |. 50 push eax ; /lParam = 0x25800B8D
00411080 |. 6A 01 push 0x1 ; |wParam = 0x1
00411082 |. 68 80000000 push 0x80 ; |Message = WM_SETICON
00411087 |. 51 push ecx ; |hWnd = 0x230998
00411088 |. FFD7 call edi ; \SendMessageA
是第二个参数,取消原断点,并在原SendMessageA断点位置下条件断点
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-7-24 16:58
被小木鱼编辑
,原因: