-
-
[原创]一个简单的DXF辅助E语言程序E盾破解分析
-
发表于:
2020-3-31 21:07
10089
-
[原创]一个简单的DXF辅助E语言程序E盾破解分析
起因是在网哔哩哔哩网上看到一个视频讲的是用E盾的漏洞去破解软件,当然了这篇文章和这个没什么关系。。。。。然后我就在百度上搜索了E盾保护的软件,在52破解上看到了一个帖子,也没细看,就直接把这个软件给download下来了,然后准备用网上看到的那个E盾漏洞啥的试试
软件打开后是这个样子,红色的是我IDA载入生成的。原本的是没有的,接下来一般都是PEID查壳,是我们不能少的操作(虽说可能出错)。。。。
无壳,也没有多余的段,但是这个软件明明写的E盾,这,,,
跳到 0x401000处 看到xor eax ,eax 我们可以肯定这是个E语言程序
1.OD载入,运行看看
直接 弹出发现非法工具 确定后就退出了 那么我首先想到的第一个方法就是下MessageBox断点
重新载入程序 bp MessageBoxA
一般操作,堆栈窗口,右键跟随反汇编,然后看到有没有什么跳转是跳过这个信息框的
往上找,一直找到函数序言都没看到有那个跳转跳过这个提示信息框,我当时就像了,难道这个框是必定会弹出的吗,只是提示的不一样而已吗?像这里就提示是 发现非法工具,点击然后就退出 如果是正常打开的话,是不是提示什么 软件准备好了,点击就出界面了。然后我就重新正常(不用OD载入)打开了程序看,没有出现提示,这我就难受了,然后我中函数序言下断点,重新运行程序,然后看堆栈,是哪调用了他,搞了10-20min还是无果一脸懵逼,难受了
2.感觉实在是懵逼了,就看这个帖子上的人是怎么过的,还是没看懂是怎么找到的,然后心想用IDA看看,IDA载入,跳到这个显示MessageBox的地址
看到这个MessageBox在这个函数上是必运行的了,划到函数序言(函数开始的地方),快捷键Ctrl+X看都是哪里调用了他
点第一个进去发现,看到注释,一目了然了,是可以跳过的是吧,然后sub_42EA80这个就是要弹出的那个信息窗口的函数,看到他是由ebx寄存器获取他的偏移,然后.......间接调用的,怪不得分析起来有点难受,(由于之前工作是单片机的逆向,所以用IDA比较多,OD用得不怎么好)
当然刚刚,看到这么多地址调用他的,我们都要去看看,但是这里我很幸运,我过第一个就可以了。看到52pojie的那个帖子也是跳这个地址,这就联系起来了。
3.OD重新载入程序,在0x401CAC下F2断点,F9运行程序,来到这里,看到je是没有实现跳的,确实是这里出了问题,提示非法工具,点击寄存器窗口的Z标志,双击两下,变为反的,然后跳过非法工具提示,F9运行,发现退出程序了。只能F8一步一步过,看是在哪个函数上是推出了,Ctrl+F2重新载入程序,像刚刚那样到 跳过非法工具后F8一路下去,注意F8过函数的现象,如果F8过函数后,直接退出了,我们就知道是这个函数执行了退出操作,退出后我们按ESC在,准备调用这个函数的地方下断点,下次直接来到这里,如果有必要可以F7进函数里面看看,我们可以这样做,如果发现是A函数退出了程序,我们就把他NOP掉,或者跳过如果发现程序崩溃了,那么就说明,这个函数不单单只是退出操作,还是其他操作,我们这个时候就要F7进去看看他里面是那个函数执行了退出操作,就这样一步步走。(技巧:一般如果这个函数的上方有个跳转,可以跳过他的话,他可能就是我们要找的了)最后我找到了在这里:(我有尝试下ExitProcess断点,但是没反应)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-3-31 21:15
被zuoshang编辑
,原因: