记一次毫无技术含量的 Hack

早上起晚了, 八点的汇编实验课七点三十五才起床, 起来抄完待会要交的作业然后去等公交, 大概八点二十分到机房, 老师并没有说什么.

这几天的心情不是太爽, 因此实验课没打算做作业. 然而桌面上有个OD, 就随便打开来看看了.

「学校的用的防护软件不会这么渣吧?」我是这样想的, 但不妨一试, 反正试了也不花钱.

系统是古旧的XP, 在托盘那里有SQLServer, 瑞星, 联想远程网络控制被控端, 联想硬盘保护工具(好像是这个名字), 因为是电脑联想品牌机, 所以后两个应该是买的时候送的, 点击退出硬盘保护工具, 一下子就能退出, 但这并没有什么卯用, 硬盘保护已经在系统启动前就先行启动了. 退出被控端需要管理员密码, 对这个密码我倒是有点兴趣, 用OD附加看看.

附加了并没有办法运行, 提示该线程被挂起或者线程终止. 但是在网络控制软件下有个小工具, 叫ChangeIP.exe, 使用它更改电脑的IP也需要密码, 挑这个软柿子捏好了. OD打开, 发现他是用MFC写的(有MFC的模块), 查看导入函数, 没有GetWindowText 或者是 GetDlgItem 之类的函数, 但是有 IsDebugPresent(), 有反调试, 所幸这个OD里插件齐全, 打开HideOD插件把所有绕过的选项勾上, 重启.

重启后, 程序正常地在OD里跑起来了. 到了输入密码这个窗口, 程序里并没有搜到什么有用的字符串, 那就内存断点吧. 随便输入一个密码, 然后回到内存窗口里搜索该密码…没有搜到. 那就点击确定->提示密码错误, 之后再搜索, 有了. 对该地址下内存断点. 再输入一次, 点击确定, 程序断下来了.

为什么说这是一次没有技术含量的Hack呢? 程序读取改地址的第一个字节, 写入 00(并不是我输入的值), 我并没有耐心分析他想做什么(当然分析了也不一定有结果), 所以直接F9让他继续执行, 继续触发断点, 果然瞎猫碰见死耗子了, F9几次后, 到了密码验证的环节了, esi寄存器里出现了一个字符串的地址 “jsjxxgmm” (教师教学修改密码?及时进行修改密码?), 八九不离十. 我重开了ChangeIP.exe, 输入这个字串, Accepted.

取得了这个密码除了脱离被控端外似乎没什么卯用, 但是整个机房的软件都是这个密码, 完全可以下载一个控制端软件, 通过这个对其他电脑进行控制(下次试试). 另外的很重要的一点是, 硬盘保护系统也是这个密码, 这样一来, 还原卡就失效了. 想往电脑里放什么就能放什么.

嗯, 大致如此.