好友
阅读权限10
听众
最后登录1970-1-1
|
25吾爱币
本帖最后由 wojiuaihainan 于 2023-9-25 08:57 编辑
练习逆向的软件下载链接:https://wwap.lanzoum.com/iAKVe195drfg密码:hbyb
逆向前的工作,查壳,查到是VMP3.0.9的壳子,正常来说VMP区段会显示VMP0,VMP1,此作者改了一下VMP的默认名字想混淆视听,知道是VMP的壳子以后,无非是脱壳或打补丁两种方式,先看看能不能脱
cj1
cj2
cj3
第1步,设置首次启动时的断点方式
设置首次启动时的断点方式1
设置首次启动时的断点方式2
第2步,把插件都打开
插件1
插件2
第3步,打开需要逆向的软件.exe
打开需要逆向的exe1
打开需要逆向的exe2
第4步,全速运行发现被反调试
被反调试
第5步,重新载入exe,想办法过反调试
重载exe
第6步,按Ctrl+G,跟随表达式窗口输入LocalAlloc
跟随表达式窗口输入LocalAlloc
第7步,在LocalAlloc跟随处按F2下断点
在LocalAlloc跟随处按F2下断点
第8步,按F9运行至LocalAlloc断点(没有运行到的可以多运行几次直至运行到该断点)
按F9运行至LocalAlloc断点
第9步,对堆栈区停留处鼠标右键,点击查找地址
对堆栈区停留处鼠标右键点击查找地址
第10步,输入00400000后,点击确定
输入00400000
第11步,此时看到堆栈地址显示上下重叠的地址,往下找一行值为0000000B,有些可能是0000000F或其他的值
重叠的地址
第12步,对0000000B这一行堆栈右键进行修改,修改为0
右键进行修改
修改为0
第13步,ALT+B,右键将LocalAlloc断点禁止
右键将LocalAlloc断点禁止
第14步,继续全速运行发现可以正常运行不被反调试检测到了,但是会弹出一个专门检测是否以管理员权限运行的信息窗口(这是一种软件开发者从源代码层面上自己研究出来的一种反调试方法,当你点击确定或者关闭信息窗口后会快速销毁线程和主窗口,OD没法回溯上一个调用函数的跳转地址,而且在检测部分代码还进行了VM保护)
可以正常运行不
第15步,现在我们关闭信息窗口,先Ctrl+G跳转到00401000地址分析一下看看能不能获取字符串有用信息,大家知道这个地址一般是软件开始运行的地址,所以跳转过去发现出现灰色注释,表明可以分析,我们右键选择从模块中删除分析
跳转到00401000
分析
第16步,继续鼠标右键,进行中文搜索
鼠标右键进行中文搜索
第17步,接着Ctrl+F进行搜索,输入“请右键管理员身份运行助手哦!”,结果没搜到,说明关键信息提示代码被VMP掉了,(这个也是人才居然想到这种方法反调试,当你点击确定或者关闭信息窗口后会快速销毁线程和主窗口,OD没法回溯上一个调用函数的跳转地址)
输入“请右键管理员身份运行助手哦!”
没查找到
第18步,思考了一下有哪些方案可以跳过这个检测管理员身份权限,方案1、在MessageBoxA消息窗口处下断点看看能不能往上找跳转,方案2、(在网上看到说GetTokenInformation是检测是否管理员身份运行的一个函数接口)GetTokenInformation处下断点看看能否跳过判断。
最后也没找出来怎么过这个管理员权限检测,没法进行后续的逆向,恳请大佬出手出个完整逆向该软件的教学,脱壳也好是打补丁也好
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|