EPRotect他又来啦
EProtect,由易语言写的壳。请大佬们下手轻点。
{:1_907:} 本帖最后由 三十二变 于 2020-4-4 11:37 编辑
编辑了下过程。
1.OEP
用E-DEBUG找到进入软件的按钮的事件地址。
中断地址: 0051218D
Start......
StartAddress: 00789000
事件发生: 004FB506
程序退出
......End
在004FB506下断点。
004FB530 E8 04000000 call ep_HideT.004FB539
004FB7EA E8 2AF9FFFF call ep_HideT.004FB119
在004FB7EA下断点,中断时,在401000区块上下访问断点,中断来到OEP。
DUMP出来。
2.IAT
不得不说,LZ的IAT很是别致,非常别致……
有的壳我需要把它申请的内存补到区块里面去,然后再重建IAT。LZ的壳就没有补区块那一部分了……
IAT加密有两种。
一种是CALL ---> JMP ---> 解密,一种是C ALL ---> 解密
随便跟一个,找到一处API地址,然后上下找。一般MS系列编译器的IAT是很整齐的,BORLAND系列编译器的IAT是散的。易语言嘛,很整齐。
0x423000应该是起始地址,往它前面的内存看了两眼,都是0。
Size我填大了一点,因为怕漏掉IAT,后面无效的全部剪掉就可以了。
选择DUMP文件修复。
3.总结
LZ的壳十分清奇……它的IAT解密代码是在区块里面的?不是动态申请的。对付一般的壳,我会把它解密IAT的代码转存到新的区块,然后修复IAT表的。LZ的壳没了这一步……
LZ你的写壳思路有很大的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
这是打算写网络验证么。 以为是个CM,正想破解点进入软件直接进去了,还懵了一会{:301_1004:} 本帖最后由 初吻给奶嘴耶 于 2020-4-2 19:18 编辑
不会修复PE
快速分析了下
此处call为解密代码
不需要修复IAT因为抽取了所有"call []"形式的调用
变成了 call 相对地址 pop esi 形式
当进入第一个call时 会有一大堆重复垃圾代码 (实际上是解密常量)解密完毕后
真实是 jmp 进行重新跳转到真实函数
分析时取巧了 下了一个原版的HideTool3.0 找到了真实的OEP 进行访问断点 分析出来的解密代码地址再经过第一个API的时候 得到了解密常量的地址, 和得知了不需要修复IAT的原理.
不会DUMP修复 所以就只是做了简单分析
感谢您的样本分享. xjun 发表于 2020-4-2 19:33
xjun大佬翻车车啦,有遗漏,哈哈哈{:301_997:} 初吻给奶嘴耶 发表于 2020-4-2 19:17
不会修复PE
快速分析了下
此处call为解密代码
查了点味~ pcjy 发表于 2020-4-2 19:52
xjun大佬翻车车啦,有遗漏,哈哈哈
IAT加密部分没仔细看,简单的dump了下。 感觉差个虚拟机就很强了。 本帖最后由 pcjy 于 2020-4-2 20:42 编辑
xjun 发表于 2020-4-2 20:19
IAT加密部分没仔细看,简单的dump了下。 感觉差个虚拟机就很强了。
iat倒是没加密,你看401000的,就知道了,点击选项就崩溃了 Rookietp 发表于 2020-4-2 18:32
这是打算写网络验证么。
就只是壳而已,最近有点上头{:301_996:}