Shy 发表于 2016-7-21 21:30

修改返回值破解闪点卡密

**** Hidden Message *****

这里其实是一个验证点,当然如果我不说你们可以也不知道,那么我们继续看
004145E7    8945 B8         mov dword ptr , eax
004145EA    FF75 E8         push dword ptr
004145ED    68 62D07700   push 0077D062                            ; &session=
004145F2    FF75 B8         push dword ptr
004145F5    68 FFE17C00   push 007CE1FF                            ; &rs=
004145FA    FF75 F0         push dword ptr
004145FD    68 04E27C00   push 007CE204                            ; &way1=null&way2=
00414602    FF75 BC         push dword ptr
00414605    68 91D07700   push 0077D091                            ; &sessionid=null&posttime=
0041460A    FF75 CC         push dword ptr
0041460D    68 ABD07700   push 0077D0AB                            ; &userpass=
00414612    FF75 D4         push dword ptr
00414615    68 15E27C00   push 007CE215                            ; /soft/login/?username=
0041461A    FF35 40189600   push dword ptr                 ; http://main.shandiankami.com
00414620    B9 0D000000   mov ecx, 0xD
00414625    E8 3FD1FEFF   call 00401769
0041462A    83C4 34         add esp, 0x34
0041462D    8945 B4         mov dword ptr , eax   '''''这里其实是把上面的参数连接起来,成为一个完整的链接,也就是验证地址
00414630    8B5D D4         mov ebx, dword ptr


然后在此下面,无非就是一些读配置文件之类的代码,我就不看了,重点看到的是刚刚上图的那个判断到底是由什么决定的
至此,我们来分析下代码吧
00415295    8945 D4         mov dword ptr , eax    '''''首先是eax的值给了这个偏移地址
00415298    837D D4 01      cmp dword ptr , 0x1   ''''''然后是判断这个偏移地址的值是否为1

0041529C    0F85 24000000   jnz 004152C6                            ''''''''如果值为1,就不跳,不为1,就跳
004152A2    B8 E8E27C00   mov eax, 007CE2E8                        ; VIP1
004152A7    50            push eax
004152A8    8B1D 54189600   mov ebx, dword ptr             ; VIP1
004152AE    85DB            test ebx, ebx


所以我们不能让它跳,为什么?因为下面这个是vip1,如果跳过,可能导致失败,所以我们来看,到底这个eax的值是被谁改变了
我们从段首下断,一路F8到此处

通过修改这里,此时eax的值为0,之前的教程我有说过,0为假,1为真
所以这里我们改1,试试下面的判断会不会跳过


当我们修改以后,发现eax的值为1,两个值相等,jnz不跳,说明这个点我们修改对了,
然后我们继续往下跟,到此运行发现不再出现

是不是挺简单的呢?
不过为了以防万一
再修改两个点的值为1吧
00415295    8945 D4         mov dword ptr , eax
004158BA    8945 BC         mov dword ptr , eax



同上的方法

顺利跑出了界面,,,

总结:程序使用1与0判断是否会员,所以只要我们把值都改为1,那么逆向成功!

892644330 发表于 2016-7-21 22:09

那个悬赏贴里我就说过可以通过修改它的返回值为1来完美爆破,毕竟这个验证是作者自己写的 并没有多处校验。

hsrlzg 发表于 2016-7-22 23:24

学习学习··

Shy 发表于 2016-7-23 07:28

892644330 发表于 2016-7-21 22:09
那个悬赏贴里我就说过可以通过修改它的返回值为1来完美爆破,毕竟这个验证是作者自己写的 并没有多处校验。

受大神的启发,感谢感谢

a1219120145 发表于 2016-7-23 09:02

谢谢楼主支持

zhshb7739 发表于 2016-7-25 08:39

谢谢楼主, too

一个good而已 发表于 2016-7-27 20:49

谢谢楼主大大

小久久 发表于 2016-7-28 00:47

支持一下了

swwwy0605 发表于 2016-7-28 02:34

感谢楼主分享

ssm520 发表于 2016-7-28 08:36

感谢楼主分享{:5_117:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 修改返回值逆向闪点卡密