职称直考通软件完美爆破及获得最高版本和拥有所有功能的详细步骤
本帖最后由 Harlan 于 2017-4-3 22:59 编辑又来发帖了 难免还是有点小紧张, 今天发帖的目的就是把学到的东西跟大家分享交流下。{:5_121:}发这个帖子之前 在论坛搜了下 居然还搜到了 有个朋友已经发了个视频教程,一共20多分钟,就是把那个全局变量在数据段进行了赋值,大家都知道,数据段是程序可以任意操作的位置,也就是说程序可以随时把这个地方的值修改了,那么BUG就出现了,本来的逆向版 可能就会还原失去逆向的效果。所以我做了图文教程,然后以我的思路来逆向这个软件。
而且最后看到那个朋友是在那个全局变量值的为位置赋值是4 但是最后拿到的不是完整版而是高级版,对此我也在下面进行了详细讲解。
我逆向这个软件绝对是完美爆破而且绝对是完整版{:5_116:}
这个软件在恒大的教程里是教的如何找到注册码的,我今天来跟大家交流下如何爆破,及获得最高版本,因为我大致看了下了好像不是只有一个版本。
第一步咱们打开软件,步骤肯定大家都知道 字符串搜索 搜索注册失败,然后在上面的JE上方的CALL下断
然后就是那个查找那个全局变量的值,然后右键下硬件写入断点 DWORD 型 然后重载然后会来到这里
然后大家可以看到这个CMP上面是个关键CALL 我这个有高亮显示,所以大家可以看到 这里5个函数全部是同一个地址而且以此会与0,2, 3 , 4,5 进行比较,那么说明,说明我们这个软件有5个版本,为什么我这样说 别急 咱们再看张图 。
我们在字符串搜索关键字 体验版
图中可以看到,那个高亮的全局变量 是不是和上张图一模一样,说明什么呢?说明这个全局变量是判断版本的,依此有5个版本,我们需要对应的数值进行比较
首先说这个程序大致是一个典型的switch case 结构在易语言里叫什么 我忘了 c语言中的原型如下,至于那个JMP为什么是edx*4是因为 他这个数是int型 也就是整数型
int i
switch(i) //判断数字是几
case 0:
"体验版"
break;
case 2:
"冲刺版"
break;
case 3:
"题库版"
break;
case 4:
"完整版"
break;
case 5:
"题库版"
"高级版"
break;
我们既然已经到这个地方 我们就需要先修改的JMP为什么这样说呢 大家想下拉可以看到,完整版的JMP会跳向高级版,也就是说如果修改成功他最终拿到的版本是高级版而不是完整版。
所以我们要人为干涉他 把他地址修改了 如果不知道JMP到什么地方比较合适 可以参照上面的JMP因为这个语句 JMP的地址都是一样的.改成这样就可以了
这里改好了 这样可以保证我们拿到的是完整版了,那么我们回到一开始第二张图的那个位置,我们既然知道这个全局变量是版本数,那么也能看到第二图上在5个比较上方有个CALL那么大家应该就知道了 这里肯定就是关键CALL既然这样,那么我们进CALL
修改成这样,因为我们已经知道了他是一个验证版本的CALL那么我们最直接的方法就是在这里返回我们需要的版本即可搞定,那么这里的eax为什么要赋值成4呢看上面的那张图 按着数,正好完整版就在第4个 所以我们直接赋值为4 即可得到我们需要的版本。然后就可以保存了,但是在保存的时候会提示可能重定向,这个不用理他 因为我们没有对绝对地址进行操作 我们操作的都是相对值以及改回值 所以即使重定向也不会影响程序的正常使用。
当然了 肯定有的小伙伴已经保存出来了 但是肯定看到的版本是高级版 这是为什么呢,因为在完整里有一个判断,判断另一个全局变量是否为0如果为0 不跳 那就是真正的完整版,还有就是不知道是不是作者的失误还是故意的,在最后两个版本之间居然没有JMP这样就造成了 肯定就是高级版。
很多朋友看到这个地方 肯定认为 那么我们直接NOP不就完事了吗。但是按照编程的逻辑来的猜想的话,既然作者在这里使用的是全局变量判断,说明其他的地方一样会使用这个全局变量进行判断,然后我们在这里NOP 恐怕会损失一些功能,有可能会出现什么BUG没有具体去玩 这都是猜想。我的思路是 对这个全局变量下硬件写入断点 DWORD型 如图
这里有对这个变量进行的赋值操作,那么我既然需要赋值为0 那最简单的方法就是在上面那个test处 下断 重载看那个JE是否跳转,如果他跳了,那么直接NOP
然后保存一下 ,那么再打开软件大家就可以看到这个版本就是完整版了{:5_124:} 这可是最全的版本哦一共是4项,可是最全版本哦!!!!!上张图毕竟空口无凭
至此就是一个完美的爆破全部过程如果大家发现我在帖子有什么问题 给我留言 我会改进的。。
程序在恒大的教程里的第三期的课件里有,本来想下个最新版 去官网没有下到 最后就拿这个讲解的。
楼主讲的很详细 kangda666 发表于 2017-4-4 00:21
楼主讲的很详细
为了跟大家多多交流 主要也是为了让大家找出我哪里有不对的地方 才得讲那么详细哦{:6_208:} 大神很厉害啊!大赞! leyou 发表于 2017-4-4 09:21
大神很厉害啊!大赞!
我不是大神 我也才刚入行没多久菜鸟 感谢大牛的思路简直太赞了。 楼主写的很详细,现在每天上来学习一下{:5_117:} 厉害,必须学习 高手啊!只注册了几天就发表了这样详细的教程,大牛啊! 详细的教程,大牛啊!