实战破解思科模拟器packet tracer-去除登陆窗口

声明:本人首发于合天智汇 

当我们想要破解一个软件时,个人认为最重要的就是对它的关键代码进行定位(ps:这里的关键代码是相对于我们而言的,比如想要去掉软件的启动页广告,其中一个思路时可以找到它加载的地方。分析一下,判断哪里判断是否启动页加载的逻辑 改掉它就好啦)

一,背景:因为学的专业开设有路由交换这门课,但是呢,每次启动都有一个烦人的登录页

每次都是选择游客模式,这不是最关键,关键就是必须等待15秒才可以进入

百度谷歌了一波,居然找不到破解版,也没找到任何相关教程,心里有点凉

不过作为一个逆向菜鸡,真的是忍不了(ps: 好久没实战破解过了,拿来练练手也不错嘛)

二,破解时用到的:环境(学校用的版本是6.3,我用的win10x64位系统),工具(PEiD,IDA Pro, Pexplorer,Olydbg,Spy++,x32dbg),方法(单步跟踪,各种回溯,各种断点等等),咳咳,最重要的就是眼手不能停,其他版本大家自己尝试

三,最后想要实现:就是跳过等待时间,直接进入模拟器

最好是可以直接去除Nag(登陆页面)

四,简单说下过程:本例中采用最简单的思路,就是查找关键字符串

首先观察下这个页面能挖出什么信息,这里我主要就是利用这三个字符串

实战破解思科模拟器packet tracer-去除登陆窗口_第1张图片

软件很大 IDA对于我这种菜鸡也派不上用场,而且加载和OD一样贼慢

这里我选用x32dbg

反汇编窗口右键,选择字符串,所有模块

实战破解思科模拟器packet tracer-去除登陆窗口_第2张图片

我先过滤了一下ollydbg,这里就是过滤关键字符;

发现有以下两个字符串瞬间明白肯定是有对ollydbg的反调试:发现有ollydbg,结用ollydbg没办法动态调试,就是软件的反调试机制,有些公司会专门针对反编译软件做反调试看一个程序有没有对你的反编译软件做处理,过滤名字就是一种思路

难怪用ollydbg没办法进行动态调试(ps:这里没有仔细研究是怎么做的,不是本文重点)

实战破解思科模拟器packet tracer-去除登陆窗口_第3张图片

再过滤一下Login,发现有Guess Login,还有一些网址之类的

本来想到可以直接从网址入手,但是不行,这个网址只是用来与服务器交互的

我本来就不想登陆账号

实战破解思科模拟器packet tracer-去除登陆窗口_第4张图片

向下翻就突然发现 set login banner之类的

心想banner不是那个横幅什么的嘛,下了断点,去试试

找到断首,逐行向下单步分析,结果发现没什么用。。。

实战破解思科模拟器packet tracer-去除登陆窗口_第5张图片

又回到字符串那里,乖乖的把所有的Guest Login下上了断点

调试到这里的时候,突然Guest Login那个按钮变灰并出现了15

这时候心里非常开心,以为附近就是关键点   

这样就可以跳过这个计时器或者改变数值15为0

结果调试着调试着我就乱了

不知道程序执行到哪了,单步了估计300次,不变14。。。

实战破解思科模拟器packet tracer-去除登陆窗口_第6张图片

然后重新载入,有些觉得和这个没啥关系的call直接跳过(ps:好多可以根据注释还有名字来判断它的作用)

单步着,单步着,突然发现15变成14了

单步向下时多次在下面这两个跳转直间来回跳,将上面那个je跳转双击改成jmp之后

F9运行两次

发现按钮上面的字符变了,从Guest变成了Gue

实战破解思科模拟器packet tracer-去除登陆窗口_第7张图片

接着13,可以看到我将je跳转还原之后,又变成了Gues

实战破解思科模拟器packet tracer-去除登陆窗口_第8张图片

这里简单解释一下  

实战破解思科模拟器packet tracer-去除登陆窗口_第9张图片

12了:

实战破解思科模拟器packet tracer-去除登陆窗口_第10张图片

然后发现注释窗口出现了“Time: %1“这样的字符串

想着这不是跟时间有关嘛

那这个倒计时处理函数肯定也在附近 (ps:这时候一直在找这个函数所在位置)

实战破解思科模拟器packet tracer-去除登陆窗口_第11张图片

接着

实战破解思科模拟器packet tracer-去除登陆窗口_第12张图片

又出现了一个“2timeout()“,不知道何方神圣,继续单步

实战破解思科模拟器packet tracer-去除登陆窗口_第13张图片

调试到这里的时候,发现了Guest Login(11)

就想着给它下一个内存断点

实战破解思科模拟器packet tracer-去除登陆窗口_第14张图片

右键选择,在内存窗口中转到双字

实战破解思科模拟器packet tracer-去除登陆窗口_第15张图片

实战破解思科模拟器packet tracer-去除登陆窗口_第16张图片

右键设置硬件访问断点(Dword)

实战破解思科模拟器packet tracer-去除登陆窗口_第17张图片

到这里就彻底凌乱了,程序一个劲儿的暂停,不是异常就是内存短点

后来想着是不是太长了,就重新删除,又只在11处下断点

结果还是一样,因为单步操作的快捷键是F8,所以我键盘的F8要炸了

鼠标点击也可以单步,手指也有点凉

 

好吧,到这里都要打算放弃了,因为机房9.30就锁门了

回宿舍的路上感觉好不甘心呀

又想了想是不是思路有问题,换种思路行不行

一直都在想办法找到控制倒计时的地方  

那可不可以直接在加载这个登陆页面的地方搞一下呢

回到宿舍后,立即进入状态

重新载入,回到断点窗口

实战破解思科模拟器packet tracer-去除登陆窗口_第18张图片

双击进入

向上翻,发现全都是一些初始化的信息,猜测是不是Nag(登陆窗口也会在这里初始化)

实战破解思科模拟器packet tracer-去除登陆窗口_第19张图片

后来发现这附近就这一个可能的跳转,心想着试试吧,不行就洗洗睡了

修改下ZF标志位的值使得je跳转成立  

方法:右侧寄存器窗口,双击ZF后面的0使他变成1就可以,这时可以发现CPU窗口跳转那条线变红

实战破解思科模拟器packet tracer-去除登陆窗口_第20张图片

接着直接F9运行,发现居然跳过了登录窗口,直接进入主程序了,哈哈哈,开心

实战破解思科模拟器packet tracer-去除登陆窗口_第21张图片

实战破解思科模拟器packet tracer-去除登陆窗口_第22张图片

好的,我们既然已经知道了这个je是决定时是否加载登录窗口的关键跳转

那我们将这里双击修改成jmp 

实战破解思科模拟器packet tracer-去除登陆窗口_第23张图片

接着选中被修改的部分(ps:这里可以多选)

Ctrl + P打开补丁窗口,点击修补文件,选择你想要修补的源程序(ps:这里大家可以先备份下,这样的话修改出错能够及时恢复)

实战破解思科模拟器packet tracer-去除登陆窗口_第24张图片

 

总结一下:本来是想要改判断倒计时的逻辑,结果不成,但是可以找到加载登录窗口的地方,改这里同样可以达到效果

修改的地方就这一处就好,但是调试过程非常麻烦,需要大量时间,我用了好几个小时才成功,其实还是太菜了,肯定有更简单的方法,希望有师傅可以指点一下,还有就是分析过程肯定错误不少,希望可以指出,感激不尽。

你可能感兴趣的:(我的逆向之路,杂七杂八经验,------Ollydbg学习)