首页
社区
课程
招聘
[旧帖] 我一直在等一个机会. 0.00雪花
发表于: 2012-5-24 16:46 6334

[旧帖] 我一直在等一个机会. 0.00雪花

2012-5-24 16:46
6334
在论坛学习有几个月的时间了.教程看了很多,一直想找个软件自己实践下.现在遇见了2个问题,想向前辈们请教二个问题的思路:
一,程序打开后是个登陆界面,不需要输入任何东西,是检测电脑机器码的.点登陆,失败以后无提示.和教程上的弹出提示框,下断去判断不一样,请教思路,或者说下对应教程的地址,谢谢.

二,登陆成功后.看到程序本身,我想把前面的登陆界面去掉.打开软件就是程序本身,没有之前的登陆界面.之前看到过类似的教程,现在找不到了.想请教下思路,或者给出教程地址.

三,问题也许问的很小白很笼统.很期待有你们的回复,谢谢!

上一个版本,是检测到不符合的条件(比如机器码验证失败),就跳到下一跳验证(比如继续验证角色名字),我的做法是不管验证什么都让他跳过去,最后不提示注册成功,也不提示还剩余多少天。但的确可以正常使用

只求思路,不用成品,万分感谢。

1、点击注册注册按钮,失败会弹出个记事本,我下的bp ShellExecuteA断点。
停在:
7D611170 >  8BFF            mov     edi, edi
7D611172    55              push    ebp
7D611173    8BEC            mov     ebp, esp
7D611175    83EC 3C         sub     esp, 3C
7D611178    8B45 08         mov     eax, dword ptr [ebp+8]

然后ALT+K查找调用源:
调用堆栈:     主线程, 条目 0
地址=0012FAD4
堆栈=00670FE8
函数过程 / 参数=SHELL32.ShellExecuteA
调用来自=ppg.00670FE2
结构=0012FB68

找到:
00670FC0  /$  68 04BE7500   push    0075BE04                         ; /Title = "Microsoft Internet Explorer"
00670FC5  |.  6A 00         push    0                                ; |Class = 0
00670FC7  |.  6A 00         push    0                                ; |hAfterWnd = NULL
00670FC9  |.  6A 00         push    0                                ; |hParent = NULL
00670FCB  |.  FF15 9CC46B00 call    dword ptr [<&USER32.FindWindowEx>; \FindWindowExA
00670FD1  |.  8B4C24 04     mov     ecx, dword ptr [esp+4]
00670FD5  |.  6A 01         push    1                                ; /IsShown = 1
00670FD7  |.  6A 00         push    0                                ; |DefDir = NULL
00670FD9  |.  6A 00         push    0                                ; |Parameters = NULL
00670FDB  |.  51            push    ecx                              ; |FileName
00670FDC  |.  68 FCBD7500   push    0075BDFC                         ; |Operation = "open"
00670FE1  |.  50            push    eax                              ; |hWnd
00670FE2  |.  FF15 30C46B00 call    dword ptr [<&SHELL32.ShellExecut>; \ShellExecuteA
00670FE8  \.  C2 0400       retn    4

下断,同样的方法,找到调用地址:
0075BE04=0075BE04 (ASCII "Microsoft Internet Explorer")
本地调用来自 00670BC3

00670B90   .  83EC 10       sub     esp, 10
00670B93   .  8D4C24 04     lea     ecx, dword ptr [esp+4]
00670B97   .  E8 E4030000   call    00670F80
00670B9C   .  8B4424 1C     mov     eax, dword ptr [esp+1C]
00670BA0   .  8B48 08       mov     ecx, dword ptr [eax+8]
00670BA3   .  85C9          test    ecx, ecx
00670BA5   .  75 07         jnz     short 00670BAE
00670BA7   .  B8 E8BD7500   mov     eax, 0075BDE8                    ;  ASCII "www.dywt.com.cn"
00670BAC   .  EB 02         jmp     short 00670BB0
00670BAE   >  8B00          mov     eax, dword ptr [eax]
00670BB0   >  50            push    eax
00670BB1   .  8D4C24 04     lea     ecx, dword ptr [esp+4]
00670BB5   .  E8 147B0300   call    006A86CE
00670BBA   .  8B4424 00     mov     eax, dword ptr [esp]
00670BBE   .  8D4C24 04     lea     ecx, dword ptr [esp+4]
00670BC2   .  50            push    eax
00670BC3   .  E8 F8030000   call    00670FC0
00670BC8   .  8D4C24 00     lea     ecx, dword ptr [esp]
00670BCC   .  E8 8F7A0300   call    006A8660
00670BD1   .  8D4C24 04     lea     ecx, dword ptr [esp+4]
00670BD5   .  E8 D6030000   call    00670FB0
00670BDA   .  83C4 10       add     esp, 10
00670BDD   .  C3            retn

查看调用:
0060A24D      CC            int3
0060A24E      CC            int3
0060A24F      CC            int3
0060A250   .  8D5424 08     lea     edx, dword ptr [esp+8]
0060A254   .  83EC 0C       sub     esp, 0C
0060A257   .  52            push    edx
0060A258   .  FF7424 14     push    dword ptr [esp+14]
0060A25C   .  C74424 08 000>mov     dword ptr [esp+8], 0
0060A264   .  C74424 0C 000>mov     dword ptr [esp+C], 0
0060A26C   .  C74424 10 000>mov     dword ptr [esp+10], 0
0060A274   .  8D5424 08     lea     edx, dword ptr [esp+8]
0060A278   .  52            push    edx
0060A279   .  FFD3          call    ebx0060A27B   .  8B4424 0C     mov     eax, dword ptr [esp+C]
0060A27F   .  8B5424 10     mov     edx, dword ptr [esp+10]
0060A283   .  8B4C24 14     mov     ecx, dword ptr [esp+14]
0060A287   .  83C4 18       add     esp, 18
0060A28A   .  C3            retn
0060A28B      CC            int3

这地方有个时间控件 每秒都刷新。单步到的都不是自己要的内容。应该怎么办呢
按钮事件不会下断,我是从后面一步一步往前在找。
希望能给出建议或者意见,接受任何批评,担心会沉帖

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
2
1.找到登陆按钮事件的处理函数。SDK的,看0x111消息;MFC的,根据控件ID找到消息映射表;Delphi的,根据DeDe找到相应的处理函数。
2.如果登陆后有相关的全局变量设置或者暗桩,这个不是很好去。如果没有这些,那就找到登陆和软件主界面的分界线,jmp掉登陆相关的代码就行了。
3.最好上程序,我等菜鸟能和楼主一起学习~
2012-5-24 18:05
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
也不说是解的哪个程序。
2012-5-24 23:05
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我破的是一个外挂程序,因为之前的版本有破解过一次。现在的新版本加入了登陆验证我搞不定。
我是在用我平时用的东西来增强我学习的兴趣吧。
论坛上说是禁止破解的所以没有上传,自己刚好也想通过破解这个来学习下。
外挂是红苹果。就是以前的完美咖啡。MFC的。现在在上班,晚上贴上来。
感谢你们的热心回复。
2012-5-25 11:16
0
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
5
没壳什么都好说,有壳怎么都不好办~既然登陆验证,弄个服务端欺骗下得了
2012-5-25 11:45
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你的思路也没问题的,弄成本地验证什么的。不管发送什么都返回成功。但是我操作不来,没有学习这方面的东西。
我现在是想拿这个练手。一步一步的把这程序破解掉,逐步的完善以前学到的东西
2012-5-25 11:49
0
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
7
晚上上程序吧,大伙一起学学
2012-5-25 14:30
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
已经上了。
上面的已经更新了
2012-5-25 15:59
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
前面忘记说了,这个程序需要先从服务端核对版本号,如果是最新的,就不做处理。
若不是最新的,会先获取最新的基址以及偏移地址。
然后再获取角色名,通过角色名来判断是否注册过。
所以无法通过服务端欺骗来实现。
2012-5-25 16:04
0
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个我以前看视频的时候遇到一个例子,把其中的一个函数给NOP掉可以了。我点击那个软件还有背景音乐呢,我也是NOP掉就没声音点了。不过这得慢慢找,一下子可能找不出来呢。
2012-6-2 17:47
0
雪    币: 138
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
一起学了产, 共同努力
2012-6-17 13:56
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
难道这问题就这么流产了么。。纠结,电脑的主板也坏了
2012-7-4 14:02
0
游客
登录 | 注册 方可回帖
返回
//