stop1204 发表于 2013-7-4 10:00

【S02E06】 还是不明白的朋友们~简单的用话说明(无需用户名)

本帖最后由 stop1204 于 2013-7-4 10:42 编辑

2013年7月4日 10:41:12
其实 还有个,,   继续深入机器码的获取,,    把 获取到的机器码改成0然后所有机器就能通用了{:1_914:},这个只是 想法,我睡觉去 你们实践
1.首先 找到 提示框所在的call,学过 恒大前几课的 应该都知道,, 我就不多说了
我自己的注释, 方便理解-.- ( 一级入口)
2., 紫色指向的是跳转到 (弹窗 cal)l 的指令0041C3D9   /7C 15         jl X深入注册.0041C3ED

尝试跳过它,
修改后 jl 0041c3f0结果(如图所示),, 点击注册什么都没弹,连成功都没有,也不知道有没正确,那就是失败了
所以,这个call是不能跳过的,要进入到内部去解决问题

(下面图是已经进入了这个call ,指向这个call第一个指令)


之后我们要做的就是   继续 F8 ,, 直到 弹出 信息错误的提示,,

在执行 这条执行时, 提示框又弹了出来    , --------- 查找附近有没可跳过此call 的命令其实我们除了可以往上找,也可以往下找,在 004016C8处 显示可跳过 该call 的地址 跳转来自 00401346, 004015CB, 004016BD
经修改跳过该 call也是不弹任何提示 ,所以这个call也不能跳过

看图,   为了方便, 我直接修改了 上面一个跳转,


再 跟进这个cal 中的calll发现已经没 有可跳过的 指令,所以 还是 retn出去找


直接 运行过 0041C370   .C3            retn回到段首去分析   00401290/.55            push ebp                                 ;提示窗入口

找到一个跳转,比较 :   

我在这提前说一下,~看完图明白了吧?所以 我们有一种办法, 就是不填用户名,(以下的步骤就是没用户名的过程)


密码的跳转 大家自己也可以仔细找找,我就不多说了    或者大家可以把test 指令下 有跳转 的指令全部nop掉或者jmp到下一条
有个关键位 一定不要跳 就是 jmp 的,因为 你判断z是否为0与 jmp 毫无关系
00401340|. /EB 02         jmp X深入注册.00401344
00401342|> |33C0          xor eax,eax
00401344|> \85C0          test eax,eax

之后继续分析,, 到图下所视



已经得出注册码了,, 我们已经可以不需要继续下去了,, 直接F9 , 提示注册成功

到这一步我们已经可以把 之前   不跳转的指令全部修改为不跳转,   (如 je可以直接改成 jne)
还有一种,
例:在运行到
test ebx,ebx 处
直接修改ebx ,在右上角的CPU双击 ebx直接改成 > 0 的数 即可

苏紫方璇 发表于 2013-7-4 11:06

终于看明白了,就是把判断注册码是否为空的跳转nop掉,然后直接用cpuid来注册

陌尛珏 发表于 2013-7-4 10:04

谢谢了{:1_908:}

stop1204 发表于 2013-7-4 10:04

NOP 这条指令我就不说了,, 有人发过了~   004014CD   /0F85 FD000000 jnz 深入注册.004015D0

大家自己把跳转全部无效化就可以发现了

stop1204 发表于 2013-7-4 10:18

陌尛珏 发表于 2013-7-4 10:04 static/image/common/back.gif
谢谢了

给个热心呗{:1_918:}

小雨细无声 发表于 2013-7-4 10:23

原来如此,总算看明白了。

dmxayjn 发表于 2013-7-4 10:34

谢谢分享经验

寒枫雨雪 发表于 2013-7-4 12:16

我倒不是“不明白”,我只是感到被坑得很无奈。

qiusuo 发表于 2013-7-4 12:35

1204必将成为大牛

stop1204 发表于 2013-7-5 07:40

qiusuo 发表于 2013-7-4 12:35 static/image/common/back.gif
1204必将成为大牛

我也就是跟恒大那个教程看出来的,,其他都没学过
页: [1]
查看完整版本: 【S02E06】 还是不明白的朋友们~简单的用话说明(无需用户名)