首页
社区
课程
招聘
[新手求助]一个dll文件中nag窗口的去除,请大家帮忙看看
发表于: 2010-10-18 09:15 5652

[新手求助]一个dll文件中nag窗口的去除,请大家帮忙看看

2010-10-18 09:15
5652
该dll是红外接收软件grider的插件,每次启动/退出时都会显示如下nag窗口:


用OD载入, bpx MessageBoxA 下断点,找到如下几处:
00903A36  |.  BA 28309500   mov     edx, 00953028                    ;  ASCII "Runtime error     at 00000000"
00903A3B  |.  B8 14429500   mov     eax, 00954214
00903A40  |.  E8 AB1F0000   call    009059F0
00903A45  |.  E8 291F0000   call    00905973
00903A4A  |.  EB 1C         jmp     short 00903A68
00903A4C  |>  803D 10309500>cmp     byte ptr [953010], 0
00903A53  |.  75 13         jnz     short 00903A68
00903A55  |.  6A 00         push    0                                ; /Style = MB_OK|MB_APPLMODAL
00903A57  |.  68 48309500   push    00953048                         ; |Title = "Error"
00903A5C  |.  68 28309500   push    00953028                         ; |Text = "Runtime error     at 00000000"
00903A61  |.  6A 00         push    0                                ; |hOwner = NULL
00903A63  |.  E8 F4D7FFFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
00903A68  |>  33C0          xor     eax, eax
00903A6A  |.  A3 38409500   mov     dword ptr [954038], eax
00903A6F  |>  807B 24 02    /cmp     byte ptr [ebx+24], 2
00903A73  |.  75 0A         |jnz     short 00903A7F
00903A75  |.  833E 00       |cmp     dword ptr [esi], 0
00903A78  |.  75 05         |jnz     short 00903A7F
00903A7A  |.  33C0          |xor     eax, eax
00903A7C  |.  8943 0C       |mov     dword ptr [ebx+C], eax
00903A7F  |>  E8 48FDFFFF   |call    009037CC
00903A84  |.  807B 24 01    |cmp     byte ptr [ebx+24], 1
00903A88  |.  76 05         |jbe     short 00903A8F

00909347  |.  A1 003C9500   mov     eax, dword ptr [953C00]
0090934C  |.  8B40 04       mov     eax, dword ptr [eax+4]
0090934F  |.  50            push    eax
00909350  |.  A1 D4449500   mov     eax, dword ptr [9544D4]
00909355  |.  E8 A6BBFFFF   call    00904F00
0090935A  |.  50            push    eax                              ; |hInst
0090935B  |.  E8 84D9FFFF   call    <jmp.&user32.LoadStringA>        ; \LoadStringA
00909360  |.  68 10200000   push    2010
00909365  |.  8D4424 04     lea     eax, dword ptr [esp+4]
00909369  |.  50            push    eax
0090936A  |.  8D4424 48     lea     eax, dword ptr [esp+48]
0090936E  |.  50            push    eax
0090936F  |.  6A 00         push    0
00909371  |.  E8 8ED9FFFF   call    <jmp.&user32.MessageBoxA>
00909376  |>  81C4 40040000 add     esp, 440
0090937C  \.  C3            retn
0090937D      8D40 00       lea     eax, dword ptr [eax]
00909380  /$  8B45 FC       mov     eax, dword ptr [ebp-4]
00909383  \.  C3            retn

00943794  |.  55            push    ebp
00943795  |.  68 11389400   push    00943811
0094379A  |.  64:FF31       push    dword ptr fs:[ecx]
0094379D  |.  64:8921       mov     dword ptr fs:[ecx], esp
009437A0  |.  53            push    ebx
009437A1  |.  57            push    edi
009437A2  |.  56            push    esi
009437A3  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
009437A6  |.  8B40 24       mov     eax, dword ptr [eax+24]
009437A9  |.  50            push    eax
009437AA  |.  E8 5535FCFF   call    <jmp.&user32.MessageBoxA>
009437AF  |.  8945 F8       mov     dword ptr [ebp-8], eax
009437B2  |.  33C0          xor     eax, eax
009437B4  |.  5A            pop     edx
009437B5  |.  59            pop     ecx
009437B6  |.  59            pop     ecx

0094F2DF  |.  50            push    eax
0094F2E0  |.  B8 70F89400   mov     eax, 0094F870                    ;  ASCII "Serial version is for Windows NT/2000/XP version only"
0094F2E5  |.  E8 1245FCFF   call    009137FC
0094F2EA  |.  50            push    eax                              ; |Text
0094F2EB  |.  6A 00         push    0                                ; |hOwner = NULL
0094F2ED  |.  E8 127AFBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094F2F2  |.  8B45 08       mov     eax, dword ptr [ebp+8]
0094F2F5  |.  8B40 FC       mov     eax, dword ptr [eax-4]
0094F2F8  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

0094F35D  |.  50            push    eax
0094F35E  |.  B8 A8F89400   mov     eax, 0094F8A8                    ;  ASCII "Unable to open COM port"
0094F363  |.  E8 9444FCFF   call    009137FC
0094F368  |.  50            push    eax                              ; |Text
0094F369  |.  6A 00         push    0                                ; |hOwner = NULL
0094F36B  |.  E8 9479FBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094F370  |.  8B45 08       mov     eax, dword ptr [ebp+8]
0094F373  |.  8B40 FC       mov     eax, dword ptr [eax-4]
0094F376  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

0094F4C5  |.  50            push    eax
0094F4C6  |.  B8 C0F89400   mov     eax, 0094F8C0                    ;  ASCII "Unable to initialize your COM port to signal monitoring"
0094F4CB  |.  E8 2C43FCFF   call    009137FC
0094F4D0  |.  50            push    eax                              ; |Text
0094F4D1  |.  6A 00         push    0                                ; |hOwner = NULL
0094F4D3  |.  E8 2C78FBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094F4D8  |.  8B45 08       mov     eax, dword ptr [ebp+8]
0094F4DB  |.  8B40 FC       mov     eax, dword ptr [eax-4]
0094F4DE  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

0094FA47  |.  B8 94FD9400   mov     eax, 0094FD94                    ;  ASCII "Unable to inicialize USB driver DLL library!"
0094FA4C  |.  E8 AB3DFCFF   call    009137FC
0094FA51  |.  50            push    eax                              ; |Text
0094FA52  |.  6A 00         push    0                                ; |hOwner = NULL
0094FA54  |.  E8 AB72FBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094FA59  |.  8B03          mov     eax, dword ptr [ebx]
0094FA5B  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

0094FF3F  |.  50            push    eax
0094FF40  |.  B8 C8019500   mov     eax, 009501C8                    ;  ASCII "UDP port ""6668"" is already open by another application!"
0094FF45  |.  E8 B238FCFF   call    009137FC
0094FF4A  |.  50            push    eax                              ; |Text
0094FF4B  |.  6A 00         push    0                                ; |hOwner = NULL
0094FF4D  |.  E8 B26DFBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094FF52  |.  8B03          mov     eax, dword ptr [ebx]
0094FF54  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

0094FEC8  |.  50            push    eax
0094FEC9  |.  B8 84019500   mov     eax, 00950184                    ;  ASCII "Unable to inicialize UDP driver DLL library!"
0094FECE  |.  E8 2939FCFF   call    009137FC
0094FED3  |.  50            push    eax                              ; |Text
0094FED4  |.  6A 00         push    0                                ; |hOwner = NULL
0094FED6  |.  E8 296EFBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094FEDB  |.  8B03          mov     eax, dword ptr [ebx]

0094FF3F  |.  50            push    eax
0094FF40  |.  B8 C8019500   mov     eax, 009501C8                    ;  ASCII "UDP port ""6668"" is already open by another application!"
0094FF45  |.  E8 B238FCFF   call    009137FC
0094FF4A  |.  50            push    eax                              ; |Text
0094FF4B  |.  6A 00         push    0                                ; |hOwner = NULL
0094FF4D  |.  E8 B26DFBFF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
0094FF52  |.  8B03          mov     eax, dword ptr [ebx]
0094FF54  |.  8B80 0C260000 mov     eax, dword ptr [eax+260C]

========================================================

将其中的
00909371
009437AA
两处用nop填充,保存,测试时仍然有上述nag窗口。

请问大家,除了 MessageBoxA 外,还有哪些函数可以产生上述对话框/窗口?
我应该怎么做?

附件:
IgorPlug.rar

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以先搜索找到字符串Free version!看看是哪个函数创建的窗口
2010-10-18 10:02
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢。我用UltraEdit 搜过了,但搜索不到。
2010-10-18 14:22
0
雪    币: 421
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
哪个版本的grider?
2010-10-18 15:02
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我晕,你就用OD搜索社  
1 OD有个插件可以搜索名字忘了
2 OD原有的字符串搜索功能。点右键-->搜索所有的字符串 .
   这个时候有个列表 列出了所有的字符串  然后右键 搜索 "Free"

另外在这个地方提个问题
谁知道问道的聊天窗口时怎么实现的。我们程序需要个这种功能
就是主窗口1程序 打开另外一个有窗口2的程序。
问题是:点击窗口1 要让窗口2 一样的激活 拖动

就是2个进程的2个窗口  同时显示同时隐藏
被另外个窗口遮挡时是同时被遮挡。  也就是问道哪个游戏
外置聊天框的那种效果。知道的大牛说下 谢谢
2010-10-18 15:05
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我用的是grider 3.3版的。
grider的版本关系不大。

如果需要,请PM我email地址,我给你发过去。
2010-10-18 16:01
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你说的是Ultra String Reference插件吗?
里面的 find ASCII、find UNICODE功能都试了,OD自带的搜索功能也用了,还是找不到。

也可能是我找的方法不对。。。

请大家帮忙指点一下。多谢了!
2010-10-18 16:46
0
雪    币: 1577
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
第一,OD不是万能,脑筋要灵活,OD查找不到就用其他的,IDA,W32ASM,各个工具都去尝试一下。推荐你用W32ASM,OD查不到的时候用这个都很多时候找得到。

第二,要是你NOP掉那几行语句都还是NAG不掉,那就说明地方不对,堆栈都让你破坏掉了,还能运行?这个只能证明你找的地方还是不对。

第三,貌似去NAG框,《加密三》是用调换入栈的方法的,而不是NOP(如果我没记错)。

就这样,自己先摸索一下,我的金币不足了,还没成为会员,不能下载你的附件帮你分析了。
2010-10-18 21:06
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
F12大法!!!
2010-10-18 21:32
0
雪    币: 245
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10


有时候是通过调用地址的方式来调用MessageBox,但我不知道你的是哪里用什么方式调用的,你在动态调试仔细找找,另外你只发了一个.dll的文件,我动态调试不了。
2010-10-18 22:31
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢大家,问题解决了!回帖的兄弟kx币都有份!

作者有点狡猾,改了驱动里另一个dll文件(IgorUSB.dll),问题解决,去掉了讨厌的nag窗口!
2010-10-19 16:06
0
游客
登录 | 注册 方可回帖
返回
//