实战去除思科packet tracer登陆窗口

背景

专业课开设了路由交换这门课,其中要经常使用packet tracer这个软件,但是没有注册的话,每次登陆都需要等待15s,就尝试破解一下。

目标

破除等待的15s,最好直接去除掉登陆窗口。但是老师上课给我们演示过,有个吾爱破解的插件是直接破解掉登陆窗口的,就直接奔着这个目标去。

工具

  • win7 模拟器
  • packet tracer 7.11
  • x64dbg

破解过程记录

寻找突破口

在弹出登陆界面时,最上方会有 netacad.com Login的字眼,先就选择这里作为关键字符串。


在这个exe的程序下搜索字符串。

端口可疑字符串对应的汇编指令。

然后开始f9一直运行,在这个netacad.com Login,运行其后的软件会发现,的确开启了登陆的窗口。这样就可以确定,关键处就在这里。

向下看可以看到,一些登陆失败的字符串,那就无疑是这一块的函数控制着这个登陆窗口。

向上看可以看到,有几个小跳转,和一个大跳转,然后追过去可以发现,是可以绕过这些关键函数的。那就很简单了,尝试改成jmp 无条件跳转一下试一试。

然后直接运行一下,然后的确是成功了,去掉了登陆框。

然后进行保存补丁,替换主程序即可。

小总结

的确是找到了关键处,感觉整个过程还是很简单的,由于前人经验就是从登陆界面下手的,我也是直接跟随这个思路操作。在完工以后,尝试去搞一下15s哪里的验证,想点一下直接变为0s,可以点击确认,发现是的确麻烦也没有成功就放弃了。

半自动化打补丁

不太会写c,用python 写了打补丁的程序,确保本机有python2的运行环境。然后把脚本放在其安装路径的bin目录下,运行即可。

也可以把程序拖出来,打完补丁后替换原来的程序即可。

#!/usr/bin/env python2.7
import struct
import os

def WriteFile():
    with open('PacketTracer7.exe','r') as f:
         dt = f.read()
    dt = dt[:0x17a5245]+'\xe9\xee\x04\x00\x00\x90'+dt[0x17a524b:]
    with open('PacketTracer7.exe', 'w') as f:
        f.write(dt)
if __name__ == '__main__':
    WriteFile()

针对的只是7.11。



re

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!