【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 的数 即可
终于看明白了,就是把判断注册码是否为空的跳转nop掉,然后直接用cpuid来注册 谢谢了{:1_908:} NOP 这条指令我就不说了,, 有人发过了~ 004014CD /0F85 FD000000 jnz 深入注册.004015D0
大家自己把跳转全部无效化就可以发现了
陌尛珏 发表于 2013-7-4 10:04 static/image/common/back.gif
谢谢了
给个热心呗{:1_918:}
原来如此,总算看明白了。 谢谢分享经验 我倒不是“不明白”,我只是感到被坑得很无奈。 1204必将成为大牛 qiusuo 发表于 2013-7-4 12:35 static/image/common/back.gif
1204必将成为大牛
我也就是跟恒大那个教程看出来的,,其他都没学过
页:
[1]