1、折腾了几天,一开始想拦截 MessageBoxA ,以为找到了可以往回看是从哪里跳过来后改掉进行暴破,但是失败。
2、后来知道是产生一个irsetup.exe 和 irsetup.dat ,都给我找到了。但是发现找到的地方是:
返回到 Kernel 中,并没有像 4nil 的那样返回安装程序。所以我改了 irsetup.dat后,再继续下去程序直接终止,根本不能 下一步,暂时失败。
3、本想在 _lcreate 后面加个 MessageBox ,在加成功后,弹出来,去看文件夹,这个时候还没生成 irsetup.exe 呢,更不用说更换 irsetup.dat 了。想想是不是我加错位置?再找,可是找遍了,整个安装程序就一个 _lcreate 啊。暂告失败。
4、设置万能断点,拦截不到。失败。。。
5、现在我在 irsetup.exe 中拦截 MessageBoxA ,拦到了,正兴奋中,以为往上能找到跳转点,找了半天没找到,都是在 irsetup.exe 里转,跳转怎么不是从 真正的程序中来吗?看到参数如下:
0012F14C 00000040
0012F150 0012F1A8
0012F154 0012F144
0012F158 001F05FA /CALL 到 MessageBoxA
0012F15C 00BE8850 |hOwner = 00BE8850
0012F160 00BE8800 |Text = "错误"
0012F164 00000040 |Title = 00000040 ???
0012F168 00000000 \Style = MB_OK|MB_APPLMODAL
0012F16C /0012F1A8
0012F170 |00414DA9 返回到 irsetup.00414DA9 来自 USER32.MessageBoxA
。。。。。。
。。。。。。
。。。。。。
0012F134 00BE1480
0012F138 0050E030 irsetup.0050E030
0012F13C 001F05FA |hOwner = 001F05FA ('我的程序 安装程序',class='Afx:400000

10011:1900015:b0...',parent=001006A6)
0012F140 00BE8850 |Text = "序列号无效。"
0012F144 00BE8800 |Title = "错误"
0012F148 00000040 |Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
0012F14C 00000000 \LanguageID = 0 (LANG_NEUTRAL)
0012F150 0012F154
0012F154 0012F16C
0012F158 001F05FA
0012F15C 00BE8850
0012F160 00BE8800
0012F164 00000040
0012F168 00000000
0012F16C /0012F1A8
0012F170 |00414DA9 返回到 irsetup.00414DA9 来自 USER32.MessageBoxA
0012F174 |001F05FA
看到这一句:返回到 irsetup.00414DA9 来自 USER32.MessageBoxA,我就到这句代码那里往上翻,很多CALL啊。 00414DA3 就是调用 USER32.MessageBoxA 的。。。可是怎么样才能找到调用这个 00414DA3 的地方呢???
不知道还有什么办法?请大家指点指点。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!