彩虹游戏盒子(Gamebox),因为关闭软件的时候,总是会跳出一个Tflashform,试图连接到一个网站,而且必须等网页加载完成才能显示关闭按钮,所以想把它搞掉。可是在逆向分析过程中遇到了问题,还请大家帮忙指一条明路~~~
软件用Dephi编写的,界面不是标准的Windows窗口,用查找参考文本字串、设控件消息断点等方式不好定位。我的调试过程是用OD加载运行,再F9,gamebox主窗口出现,这是切回OD查看窗口,得到如下信息:
Windows
句柄 标题 父窗口 WinProc ID 风格 扩展风格 线程 ClsProc 类
000205E0 Topmost 84000000 00000080 主 004068A0 TPUtilWindow
000205E8 Topmost 0CC00000 00000100 主 02545F60 ATL:02595250
0002063E Hammer of Thor Topmost 8C000000 主 77E26387 Mjolnir
E00020634 THOR MAIN WINDOW 0002063E 8C400000 00000188 主 02577BCB CiceroUIWndFrame
NK000205FA CiceroUIWndFrame 00020634 8C800000 00000008 主 02577BCB CiceroUIWndFrame
NK00020620 PadListView 00020634 56000000 00000200 主 02568210 PadListView
NIE000205EA 00020620 00000020 40000002 主 FFFF06DB SysHeader32
NE0002063A CiceroUIWndFrame 00020634 8C000000 00080008 主 02577BCB CiceroUIWndFrame
NNK000705CC PadListView 0002063A 56000000 00000200 主 02568210 PadListView
NNIE00040610 000705CC 00000020 50000002 主 FFFF06DB SysHeader32
NNE001005CA CiceroUIWndFrame 0002063A 8C800000 00000008 主 02577BCB CiceroUIWndFrame
000305F2 Topmost 86010000 主 FFFF06D9 Shell Embedding
0003068C 彩虹游戏盒子 V1.6 Topmost 17C40000 00010100 主 0044487C TMainForm
K000205E2 0003068C =句柄 00 54000100 主 0044487C TStatusBar
K000205E4 Panel1 0003068C =句柄 00 56000000 00010000 主 0044487C TPanel
IE0003068E 000205E4 =句柄 00 56010000 主 FFFF06D9 Shell Embedding
INE00040688 0003068E 56010000 主 FFFF0711 Shell DocObject View
INNE00020618 00040688 56000000 主 FFFF0729 Internet Explorer_Server
K000205EE 0003068C =句柄 00 56000000 00010000 主 0044487C TPanel
IK000205E6 000205EE =句柄 00 56000000 00010000 主 0044487C TPanel
IE000405EC 000205EE =句柄 00 5600984E 00010000 主 0044487C TToolBar
E001D020C Default IME 0003068C 8C000000 主 77E6DC14 IME
NE000605DA M 001D020C 8C000000 主 FFFF0735 MSCTFIME UI
000605DE Topmost 84000000 00000080 主 004068A0 TPUtilWindow
0006068A Topmost 84000000 00000080 主 004068A0 TPUtilWindow
00070640 Topmost 84000000 主 FFFF0731 Internet Explorer_Hidden
0026020E gamebox Topmost 94CA0000 00000100 主 004068A0 TApplication
K000205F0 本软件为免费,请您支持本软件, 0026020E 86C00000 00000101 主 0044487C Tflashform
K000205F4 帮助 0026020E 86C80000 00000101 主 0044487C ThelpForm
K000205F6 关于... 0026020E 86C80000 00000101 主 0044487C TAboutForm
E000205F8 打开 0026020E 86C80000 00000101 主 0044487C TOpenForm
红色部分就是那个想搞掉的窗口,于是我跟随 ClassProc,在该处下断点,重新执行程序后发现跟我原来想的情况不同。
我原来想像是在点关闭按钮的时候创建一个Tflashform窗口,那么我可以直接在程序中从这里jmp到结束程序,pass掉这个窗口。
但是事实上好像是这个程序一运行的时候,就把所有窗体都创建好了,点关闭按钮的时候无非是设置了一个窗体的IsVisiable属性,并且要命的是所有窗体的创建都是同一个call,我猜用delphi和CB编写的程序都是这种情况,不知是不是这样?还是因为他是用的哪种界面控件或是特殊方法来设计非标准窗体导致的这种情况?请高手指教一把~~~
然后问题就是。。。。。。。下面我该怎么办啊?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!