能力值:
( LV2,RANK:10 )
|
-
-
2 楼
目前还看不懂
纯支持一下
|
能力值:
( LV9,RANK:690 )
|
-
-
3 楼
不错,详细介绍了与外壳代码通信的一种可行方案
补充一下,如何在原PE文件中选择合适的call
call XXXXXXXX
搜索0E8h,并确定相应指令的RVA,进而计算出XXXXXXXX确定是否位于代码段。不知道误码的概率是多少,是否还有其他的方法搜索这种有效替换指令呢?
如果在外壳中这样处理还有一个缺陷,那就是脱壳以后外壳代码仍然有效,被替换的call无需修复,但是若外壳申请动态内存保存附加的功能代码,则势必要同时修补这些被替换的call指令的相对偏移量,从而把修复的线索保留在了外壳的执行过程中。
记得Spring.W兄在以前的精华里提过一个与外壳通信的简单思路,好像是替换add eax,XXXXXXXX。
相比之下,如今的想法更成熟可行度也更高了
|
能力值:
( LV9,RANK:330 )
|
-
-
4 楼
牛人!看来你已经摆脱麻烦了!收藏
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
太美了!!!!!!!!
|
能力值:
(RANK:350 )
|
-
-
6 楼
有技术含量
好像Krypton等壳采用了这方法,对调用输入表的CALL和JMP等指令加密。
|
能力值:
( LV9,RANK:250 )
|
-
-
7 楼
有道理。
Authorship!I support!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
纯支持的.为虾米偶看不懂呢~
|
能力值:
( LV13,RANK:970 )
|
-
-
9 楼
来晚了。有人给我说了。我还以为是上午那篇导出函数的。
学习!
|
能力值:
( LV12,RANK:660 )
|
-
-
10 楼
认真学习~
|
能力值:
( LV13,RANK:970 )
|
-
-
11 楼
我觉得这种方法用于加壳的安全性比较好,如果DLL处理一下,可以增加脱壳难度。但是如果仅仅用来“有时候在改造一个PE的时候,对其中的某些call要做大量的改动,这时候,往往通过手动增加一个节”就必要性不大了,因为如果函数稍微大一点,就考虑在外面写个DLL,在PE里面仅仅需要加一个loadlibrary和GetProcessaddress调用DLL里面的函数。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
终于有人把技术关键说出来了,虽然现在还用不上,但是对楼主这种精神,我对他之景仰有如涛涛之江水,连绵不决,希望还有新的大作!
|
能力值:
( LV9,RANK:690 )
|
-
-
13 楼
最初由 nbw 发布 我觉得这种方法用于加壳的安全性比较好,如果DLL处理一下,可以增加脱壳难度。但是如果仅仅用来“有时候在改造一个PE的时候,对其中的某些call要做大量的改动,这时候,往往通过手动增加一个节”就必要性不大了,因为如果函数稍微大一点,就考虑在外面写个DLL,在PE里面仅仅需要加一个loadlibrary和GetProcessaddress调用DLL里面的函数。
人家说的就是增加外部dll调用代码啊
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
最初由 xtxt110 发布 目前还看不懂
纯支持一下
|
能力值:
( LV9,RANK:170 )
|
-
-
15 楼
强人
|
能力值:
( LV12,RANK:770 )
|
-
-
16 楼
如果在调用函数的例程或返回加密解密的例程中要是改的没有jmp(0xE9)或call(0xE8)指令(用别的相关转移指令如:ret或用别的改变指令方向的方法)
会是怎么个样子,,,没有CALL,JMP 可能好完完,,,理论仿佛可能,但是处理参数或栈等可能麻烦等,,,纯属本人的幼稚想法
支持楼主
|
能力值:
( LV4,RANK:50 )
|
-
-
17 楼
不懂也要顶
|
能力值:
( LV9,RANK:450 )
|
-
-
18 楼
好文,顶
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
厉害,高手密集
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
|
能力值:
(RANK:10 )
|
-
-
21 楼
最初由 peaceclub 发布 有道理。 Authorship!I support!
YOU ARE RIGHT!
|
|
|