记录一次对极域电子教室的分析
2019-05-13 本文已影响0人
就是很皮
1.分析极域
-
这个软件是在我学校里面用的比较多的 因为也已经有缩小广播屏幕的软件了,所以这次只是来找它的密码(不过我觉得找到密码也没啥用,这玩意卸载不卸载都无所谓)
-
先来看极域这个密码窗口
image.png
简单说下,极域输入密码错误就会抖两下,一开始我以为是用了MoveWindow函数,还傻傻的下了断点,百度了才知道原来是GetWindowsText函数(也就是获取了编辑框内容以后再拿出来和真码进行比较)
2.准备逆向
-
先打开OD附加极域的进程【在文件-附加里面找到StudentMain.exe这个进程附加就好了,请输入解锁密码是因为刚才打开过这个窗口,所以不管显示什么直接附加】
image.png
-
载入完成以后再od里面ctrl+g定位到401000处(大部分程序入口点都是这个地址,在这里我们可以进行搜索字符串下断点一系列操作,字符串也有文章说过,找到mythware_super_password这个字符串下两个字符串断点断下就能单步走出密码了)
image.png
-
主要今天有时候不是很喜欢用字符串搜索,有的加密,要么就是存在配置文件里面的那种搜不到东西,所以这种api断点最爽了(也不一定)
-
因为程序在进行密码比对的时候一定要取出某个控件里面的值拿出来比对(也就是获取一个控件里面输入的内容,所以用到GetWindowText数,一般来说API函数都有ascll版和unicode版,但是我纯小白,不晓得就知道ascll版是GetWindowTextA,Unicode是GetWindowTextW,索性这两个都下断,看她段在哪里)
image.png
OD中在最下面的command使用bp GetWindowTextA和bp GetWindowTextW下好两个断点
-
现在运行软件
image.png
刚打开这个输入密码窗口就被断下了,因为这个函数不止会获取编辑框内容,还会获取这个窗体上各个控件的标题什么的,所以不要管,直接运行
image.png我们观察右下方堆栈窗口就会看到 call xxxx下面的一些控件信息,接着运行 image.png
的确是在获取各个控件的标题了 image.png
我们现在就可以输入内容了,然后点击确定,看看会发生什么 image.png
首先我们就被断下了,但是看堆栈,并不是编辑框,所以接着运行
image.png
这时候看到堆栈变成了class=edit,也就是编辑框的类名了,所以这里才是真正我们要的,我们alt+f9运行到用户代码处
image.png
然后我们单步f8慢慢往下走
image.png
寄存器窗口也可以看到在拿我们的假码准备开始比较了
image.png
我们出刚刚那个call了,这时候还能看到一个比较可疑的字符串,mythware_super_password,字面理解一下是什么超级密码,也不知道干啥的,接着走下去
image.png
我们可以看到这里再进行比较,把我们的假码和mythware_super_password进行比较,但是我设置的不是这个密码,所以这个mythware_super_password字符串特别可疑,保存下来
再单步走下去
image.png
走到这里我们已经拿到了真的密码,但是为什么假码要和mythware_super_password做比较呢,这会不会也是一个密码,经过试验,填入了这个mythware_super_password以后,也可以进入设置界面,所以这个密码应该是超级管理员密码,不出意外应该是和极域每个版本通用的。所以破解过程结束
在吾爱也有一篇逆向清华同方还原卡硬件支持的配套软件过程:关于一次对机房还原软件【同方易教】的简单破解过程