手动脱简单的虚拟机壳(themida)

1.它有反虚拟机 在vm中要修改下配置 配置代码在最后面
2.查找什么写的
手动脱简单的虚拟机壳(themida)
3.找OEP 有下断到 GetVersion 或者找 sub esp,0x58 这里要到401000那去搜索 不然找不到 有可能同时先要程序运行起来
直接搜索没有
手动脱简单的虚拟机壳(themida)
定位到0x401000也没有
手动脱简单的虚拟机壳(themida)
运行进来就有了
手动脱简单的虚拟机壳(themida)
点下发现还是条花指令同时 不像OEP (因为它偷取了OEP)
手动脱简单的虚拟机壳(themida)
nop一条 就是oep
手动脱简单的虚拟机壳(themida)
通过对比没有偷取 OEP的程序发现少了不少指令
但只要还原俩条就可以了 (一定要还原 不然修改iat后运行不了)
手动脱简单的虚拟机壳(themida)
就里又要注意了不能现在就修复IAT 因为程序跑起来的因此 在OEP下断 一般下硬件的 断到入口再 修复
手动脱简单的虚拟机壳(themida)
发现软件断点去了
手动脱简单的虚拟机壳(themida)
那就下硬件的 断下来了
手动脱简单的虚拟机壳(themida)
改下指令
手动脱简单的虚拟机壳(themida)
修复 IAT 这里又是一个坑不能简单的填代码段的结束(不然修复时程序直接报错)
手动脱简单的虚拟机壳(themida)
到401000查看所有模块间的调用 填最后一个函数的地址
手动脱简单的虚拟机壳(themida)
还有一点是填新的IAT时也要注意这个程序 填439000也报错 填438000可以
手动脱简单的虚拟机壳(themida)
修改IAT后到这里就可以dump了 OEP为 94a0
手动脱简单的虚拟机壳(themida)
再修复导入表 有一个点要注意的是大小填多点 这是我自己填的1000默认为500
手动脱简单的虚拟机壳(themida)
脱壳完成 破解就比较简单了
手动脱简单的虚拟机壳(themida)
在vmx文件最后加上 脱完要改回来 因为变卡了
配置:

isolation.tools.getPtrLocation.disable="TRUE"
isolation.tools.setPtrLocation.disable="TRUE"
isolation.tools.getVersion.disable="TRUE"
isolation.tools.setVersion.disable="TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"

usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"

猜你喜欢

转载自blog.51cto.com/haidragon/2121729
今日推荐