能力值:
( LV12,RANK:450 )
|
-
-
2 楼
越来越酷了!
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
呵呵,快酷陛了
用TC命令跟了一下,执行被抽掉OEP的代码的指令数,是以万为单位,我没有办法跟了....
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
hehe!
zhengtu
|
能力值:
( LV9,RANK:170 )
|
-
-
5 楼
一个个的牛头人浮出水面了......
总也浮不完.....
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
曾经也想脱这个加的壳,搞了很久,也没搞定,放弃了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我也搞了一个多星期了...目前还在努力中...有兴趣一起研究?
|
能力值:
( LV9,RANK:410 )
|
-
-
8 楼
不错,已经将这个壳玩的差不多了.
其实,softworm 对于它的虚拟机已经分析的很透彻了,你不用再跟虚拟机了,关键的关键是 它解码的这句 mov eax,dword ptr ds:[eax] ,拦下来后,你只要对比判断一下,and eax,0FF 结果,后面对应的是它的真正的解码的opcode . =====引用 softworm=======
虚拟机执行流程大致为:
. 保存寄存器
. 解密opcode及参数
. 执行opcode
. 恢复寄存器
========================= 汗,感觉softworm简直就是softCPU, 把个虚拟机都跟的这么透彻,这个壳又爬下了
|
能力值:
( LV9,RANK:1210 )
|
-
-
9 楼
起码对我而言,这个壳还远不到趴下的地步。
2.2.x的vm不是很难,用vm执行的是单条指令,而且大多是壳代码而不是被抽的代码。但修复SDK保护的代码靠眼睛看是重体力活。ExeCryptor还有个麻烦之处,被抽代码的位置被壳代码借道,修复的代码不能马上写回去。
更高版本的没有看过。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
谢谢两个大侠指点
请问用OD跟踪子线程,一般是用什么方法?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
都是牛人,支持!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
最初由 softworm 发布 起码对我而言,这个壳还远不到趴下的地步。
2.2.x的vm不是很难,用vm执行的是单条指令,而且大多是壳代码而不是被抽的代码。但修复SDK保护的代码靠眼睛看是重体力活。ExeCryptor还有个麻烦之处,被抽代码的位置被壳代码借道,修复的代码不能马上写回去。
更高版本的没有看过。
感谢softworm大侠的虚拟机分析的文章
我这几天,跟着虚拟机call进入后--代码算出偏移--再保存寄存器的值--调用解密call--根据密码后的值,判断执行什么代码(由于眼力太差,我没有发现哪一条是执行被抽取的代码)...--恢复寄存器---...
问题:
我想问下,被抽的代码是在恢复寄存器之前执行,还是恢复寄存器之后,再执行
|
能力值:
( LV9,RANK:1210 )
|
-
-
13 楼
stolen codes与vm没有直接关系,是夹杂在混淆代码内的。细节我也记不清楚了。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
谢谢版主大侠的指点
昨晚上又跟了五个小时,基本上靠猜把被抽掉的代码恢复了,发现90%以上被抽掉的代码都是明码执行,没有在VM里执行,但中间调用了无数次VM,我不知道VM在这里只是起一个迷惑人的作用,还是只起一个干扰分析的代用-----我跟进过好多次vm的call,有的基本上什么都不做,就出来了,而有的执行的代码不是原程序OEP处的代码,这让我百思不得其解
修复OEP处的代码,我是找了一个同样是VC++7.0的程序对照滴,+猜+对代码下访问断点,有点投机取巧----所以就不好意思发出来啦
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
最初由 酷酷 发布 谢谢版主大侠的指点 昨晚上又跟了五个小时,基本上靠猜把被抽掉的代码恢复了,发现90%以上被抽掉的代码都是明码执行,没有在VM里执行,但中间调用了无数次VM,我不知道VM在这里只是起一个迷惑人的作用,还是只起一个干扰分析的代用-----我跟进过好多次vm的call,有的基本上什么都不做,就出来了,而有的执行的代码不是原程序OEP处的代码,这让我百思不得其解
修复OEP处的代码,我是找了一个同样是VC++7.0的程序对照滴,+猜+对代码下访问断点,有点投机取巧----所以就不好意思发出来啦
除了搜索特征码外有什么更快的方法直达IAT处理函数?
0071B882 E8 D4E80000 call <zhengtu.Get涵数校验值>//以上为该涵数的运算
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
我是把这壳自已模拟的这个GetProcAddress跟了一篇
eax传递API名校验值,edx传递模块句柄值
没有用搜所特征码,并且这个涵数里面又分成几个涵数执行,我感觉,跟过一篇后,很容易到达IAT的处理
(我没有找到能够用的特征码,壳里面的代码已经被改的面目全非...)
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
昨晚上更新了一下这个程序新加的这个壳,发现又出新招了
用的异常代码有 lock int1,lock int3 这样的异常指令,也不知道是OD的bug还是我这里设置不对,不管我怎么勿略异常,OD都过不了
后来无奈之下,找SoftICE,但弄了几个小时,发现SoftICE并不是想像中的那么容易使用,不适合脱这壳
--------使出杀手招:在壳把壳的代码解出来之后,手动到这些 Lock int..之类的地方改成 int 3 我一共改了四个地方,就跑到了OEP处
|
|
|