首页
社区
课程
招聘
[旧帖] [求助]谁能找到这个程序调用MessageBoxA的地方 0.00雪花
发表于: 2008-6-7 12:30 7390

[旧帖] [求助]谁能找到这个程序调用MessageBoxA的地方 0.00雪花

2008-6-7 12:30
7390
这个程序是我加过Asprotect的Notepad
我对它进行了修改,Asprotect的自校验保护弹出了对话框
怎么才能找到调用这个MessageBoxA的地方呢?
如果谁实验成功了麻烦说一下,谢谢了
test1.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
在我这,启动不了
2008-6-7 13:56
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
什么意思?运行就报错还是什么?
2008-6-7 14:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
壳没加好吧,有问题
2008-6-7 19:18
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
有什么问题?
弹出对话框说"File corrupted......"就是我说的那个对话框
2008-6-7 23:58
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
你最好说说你修改那里?
2008-6-8 03:36
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
跟一下不就知道了吗?
我只想找到弹出第二个MessageBoxA的地址
2008-6-8 08:14
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
8
在有壳的状态下, 你改了什么?
还是你只想拿这个做实验?

做实验的话你最好将你改那里讲出来.
你光得知 call messageboxa 这里是没用的.
2008-6-8 09:11
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
9
如果你不能找出调用第二个MessageBox调用的地方,不必再做此种无意义的回复了
2008-6-8 11:49
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ppt
10
自己解决吧,我见不管你这种人,求别人帮忙,口气还这么生硬!真是的,做任何事情之前,先学会做人吧!
2008-6-8 11:59
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
兄弟不会做人撒!!
2008-6-8 12:03
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
12
我只是不喜欢答非所问的人
2008-6-8 12:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
use32进程下,
77D505CA    E8 2D000000     call    MessageBoxExA
2008-6-8 12:55
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
14
先谢谢楼上的兄弟,但我想找的是程序领空内的(即test2.exe内的)
2008-6-8 13:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是啊,我也想。但是接下来就终止了~偶菜找不到~~~~
2008-6-8 13:42
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
底下位址不同的话...自己想办法吧. (Win2000 SP4)

MessageBoxA 里面的 ret 10h 是直接ret到 00b55da8 亦即 jmp [KERNEL32!ExitProcess]
(显示出讯息后直接结束程式)

00b55f90  ff254843b900        jmp       [USER32!MessageBoxA]
00b55f96  8bc0                mov       eax,eax
00b55f98  ff254443b900        jmp       [USER32!OpenClipboard]
==== 省略 ====

00b55da8  ff25f442b900        jmp       [KERNEL32!ExitProcess]
00b55dae  8bc0                mov       eax,eax
00b55db0  ff25f042b900        jmp       [KERNEL32!FileTimeToDosDateTime]
==== 省略 ====

这时你会问, 那里调用 00b55f90 呢? 
(这篇文章所有的调用都不会笨到让你由 [ESP] 得知的)

00b651c0  55                  push      ebp
00b651c1  8bec                mov       ebp,esp
00b651c3  51                  push      ecx
00b651c4  8b450c              mov       eax,[ebp+0c]
00b651c7  e80020ffff          call      00b571cc
00b651cc  85c0                test      eax,eax
00b651ce  750d                jnz       00b651dd
00b651d0  6aff                push      ff
00b651d2  bba95db500          mov       ebx,00b55da9
00b651d7  4b                  dec       ebx
00b651d8  53                  push      ebx
00b651d9  c3                  ret
00b651da  eb01                jmp       00b651dd
00b651dc  e8    db E8          ;简单的花指令
00b651dd  83c464              add       esp,64
00b651e0  e8730dffff          call      USER32!GetActiveWindow
00b651e5  8945fc              mov       [ebp-04],eax
00b651e8  b88f5fb500          mov       eax,00b55f8f    /EAX=00b55f8f+1=00b55f90
00b651ed  40                  inc       eax      \自己看上面吧
00b651ee  6aff                push      ff
00b651f0  bba95db500          mov       ebx,00b55da9    /EBX=00b55da9-1=00b55da8
00b651f5  4b                  dec       ebx      \自己看上面吧
00b651f6  6830200000          push      00002030
00b651fb  ff7508              push      dword ptr [ebp+08]  //'Test1.exe'
00b651fe  ff750c              push      dword ptr [ebp+0c]  //'File corrupted ...'
00b65201  ff75fc              push      dword ptr [ebp-04]
00b65204  53                  push      ebx      //jmp  [KERNEL32!ExitProcess]
00b65205  50                  push      eax      //jmp  [USER32!MessageBoxA]
00b65206  c3                  ret

EAX= 00b55f8f + 1 = 00b55f90 =  jmp [USER32!MessageBoxA]  的位址
EBX= 00b55da9 - 1 = 00b55da8 =  jmp [KERNEL32!ExitProcess]的位址
反正后二行 你可以想成是 jmp MessageBoxA ,然后直接 ExitProcess

这时你又会问, 那里调用 00b651c0 呢? 这里:

00b7e8c0  55                  push      ebp
00b7e8c1  8bec                mov       ebp,esp
00b7e8c3  83c4f4              add       esp,-0c
00b7e8c6  53                  push      ebx
00b7e8c7  8b4230              mov       eax,[edx+30]
00b7e8ca  83e820              sub       eax,20
00b7e8cd  83e804              sub       eax,04
00b7e8d0  8945f4              mov       [ebp-0c],eax
00b7e8d3  33c0                xor       eax,eax
00b7e8d5  8b4df4              mov       ecx,[ebp-0c]
00b7e8d8  83c120              add       ecx,20
00b7e8db  8bd8                mov       ebx,eax
00b7e8dd  c1e302              shl       ebx,02
00b7e8e0  2bcb                sub       ecx,ebx
00b7e8e2  83e904              sub       ecx,04
00b7e8e5  8b5c8220            mov       ebx,[eax*4+edx+20]
00b7e8e9  8919                mov       [ecx],ebx
00b7e8eb  40                  inc       eax
00b7e8ec  83f808              cmp       eax,08
00b7e8ef  75e4                jnz       00b7e8d5
00b7e8f1  8b45f4              mov       eax,[ebp-0c]
00b7e8f4  83c020              add       eax,20
00b7e8f7  8b4a44              mov       ecx,[edx+44]
00b7e8fa  8908                mov       [eax],ecx    ;这里设什么,底下的ret就
00b7e8fc  8b4248              mov       eax,[edx+48]    ;到那里.
00b7e8ff  8945f8              mov       [ebp-08],eax
00b7e902  8b829d000000        mov       eax,[edx+0000009d]
00b7e908  8945fc              mov       [ebp-04],eax
00b7e90b  31c0                xor       eax,eax
00b7e90d  8b55fc              mov       edx,[ebp-04]
00b7e910  648910              mov       fs:[eax],edx
00b7e913  ff75f8              push      dword ptr [ebp-08]
00b7e916  9d                  popfd
00b7e917  8b65f4              mov       esp,[ebp-0c]
00b7e91a  61                  popad
00b7e91b  c3                  ret

这个函数并不是只给特定一种状况用的, 而是常常都会调用到,
mov [eax],ecx 是在设底下的 ret 所要返回的位址
你就将这函数当成 jmp 的 PCode 吧

若你又想问, 那里在调用这个函数的, 那就叫无自知之明
因为可以闻到是 PCode 的方式了. 我再给你看上十层也没用.

壳是你包的, 资料是你改的, 你想干什么不说出来,
我想你一定是想知道这壳在那里做校验. 以运用到别支被包壳的程式.

之前跟你说过你要找那里在调用 MessageBoxA 没用.
你还真天真的以为所有的东西都能这么找 ?

一般人就算是平常的破解'脱壳, 就算改Code也是自己改的, 自己知道改了那里.
问你在有壳的状态下你修改那里, 由这资讯来做切入点比较有用
你老大不说就是不说, 不说是你的事, 你牛嘛.

现在给你了. 牛人你自己玩吧.
不过..即然上面这么简单的东西你都没法子自己反追的话, 我劝你别玩了.
小孩玩大车不是好事

牛老大你这7天白玩了?
2008-6-8 14:37
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
17
呵呵,我也追了好多层,但没找到我想要的!
在此对这位兄弟表示歉意,我误会你了
2008-6-8 15:45
0
游客
登录 | 注册 方可回帖
返回
//