能力值:
( LV9,RANK:450 )
|
-
-
2 楼
简单看了下.应该是很容易还原了.跟OB的代码解码方法类似.但比那个简单.应该脚本很容易解码.
用脚本找 CALL 00404800 这个CALL.找到后把 EIP 直接指向这里开始执行 在 retn处断两次.之后单步2次就到真实地址了.
用脚本中的一个命令获取下地址,之后还原应该比较容易的吧?
|
能力值:
( LV12,RANK:360 )
|
-
-
3 楼
不会吧,我的新发明居然跟别人一样,唉
|
能力值:
( LV9,RANK:450 )
|
-
-
4 楼
解码方法类似 Obsidium 壳.但没他的复杂.
你的直接把EIP指向CALL ok了.
他的至少有两种形式的
1 PUSH XXXX 这个 XXXX 可能是密钥
CAL XXXX 这个地址可变的.没次OD载入壳解码后这个地址可能都不同了.
还有种是没有 PUSH XXXX 的.直接CALL后解码的.跟你的方法类似了.
|
能力值:
( LV12,RANK:360 )
|
-
-
5 楼
这个方法肯定行,但要是我加了花指令CALL 00404800就不好找了吧
|
能力值:
( LV12,RANK:360 )
|
-
-
6 楼
嘿嘿,其实我的壳最终目标是随机加密,还有N多的模板,你这种方法最后肯定是不行的
|
能力值:
( LV9,RANK:450 )
|
-
-
7 楼
对于查找 2 进制代码或是CALL,脚本都有命令可直接找的.
|
能力值:
( LV12,RANK:360 )
|
-
-
8 楼
哦,原来如此,不过我还是能想出ANTI的方法
|
能力值:
( LV12,RANK:360 )
|
-
-
9 楼
我加点不会执行到的CALL 00404800 数据,注意是数据...脚本就能悲剧
|
能力值:
( LV12,RANK:360 )
|
-
-
10 楼
对了..call 00404800 在内存中是相对地址...2进制怎么搜索?
|
能力值:
( LV9,RANK:450 )
|
-
-
11 楼
call 数据 ?那就进入CALL后判断下2进制是E8 ? E9 ? 是就跑脚本,不是就下一个CALL.
简单说就是这思路了.
OD ctrl +b 找二进制 脚本有命令对应这功能.如果偏移不同.可能 CALL xxxx 二进制码不同.那么就 ctrl+r 找这个CALL 的参考.脚本也有对应的命令来找.
|
能力值:
( LV12,RANK:360 )
|
-
-
12 楼
你能用算法还原吗?这个是关键
|
能力值:
( LV9,RANK:450 )
|
-
-
13 楼
如果只考虑结果,那么任何可以还原的方法都OK的.脚本可以直接还原,而且简单,为什么要去考虑算法还原呢?要的就是结果嘛.
|
能力值:
( LV12,RANK:360 )
|
-
-
14 楼
额,用算法稳定嘛.等我下一个版本你在试试吧
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
礼尚往来,来一个完美还原的,
|
能力值:
( LV9,RANK:450 )
|
-
-
16 楼
好的.最近一直在面试.等我回来抽空看看你的下个版本.
如果有时间,我就写个脚本.看情况吧.时间少的话我就简单说下分析过程.
|
能力值:
( LV12,RANK:360 )
|
-
-
17 楼
发个脚本出来
|
能力值:
( LV12,RANK:360 )
|
-
-
18 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
只能算是最简单的IAT加密(函数地址加密)吧
至于另加 加花 混淆 anti就另当别论了
|
|
|