能力值:
( LV9,RANK:140 )
|
-
-
2 楼
自定义个loader不就好了,这事我干过。
|
能力值:
( LV2,RANK:15 )
|
-
-
3 楼
改造linker更方便
|
能力值:
( LV11,RANK:180 )
|
-
-
4 楼
lscmxl
改造linker更方便
然而这不是模仿别人的思路, 这是自己动手证实的。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
为什么要向A写入一段代码C呢?去掉这一步不行吗?
|
能力值:
( LV11,RANK:180 )
|
-
-
6 楼
欧阳锋锋 为什么要向A写入一段代码C呢?去掉这一步不行吗?
C的作用是,从A中分离出B,并加载B,让B操作A。 解密和反调试的逻辑都在B中,B随便更新,C永远不变,A可以是任意目标。
|
能力值:
( LV11,RANK:180 )
|
-
-
7 楼
欧阳锋锋 为什么要向A写入一段代码C呢?去掉这一步不行吗?
写入的不是源代码,是写入shellcode。。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
爱吃菠菜 欧阳锋锋 为什么要向A写入一段代码C呢?去掉这一步不行吗? C的作用是,从A中分离出B,并加载B,让B操作A。解密和反调试的逻辑都在B中,B随便更新,C ...
应该C、B合一。因为目标是任意A,C、B都是你写的。既然A是任意的,A就不可能包含B并分离出B。你这是自相矛盾。
|
能力值:
( LV11,RANK:180 )
|
-
-
9 楼
tDasm 爱吃菠菜 欧阳锋锋 为什么要向A写入一段代码C呢?去掉这一步不行吗? C的作用是,从A中分离出B,并加载B,让 .
|
能力值:
( LV11,RANK:180 )
|
-
-
10 楼
tDasm
爱吃菠菜
欧阳锋锋
为什么要向A写入一段代码C呢?去掉这一步不行吗?
C的作用是,从A中分离出B,并加载B,让 ...
A被DIY扩展空间了,写入了C,C的功能类似shellcode。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
大佬,可分析下实现的demo吗
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
爱吃菠菜
A被DIY扩展空间了,写入了C,C的功能类似shellcode。
你的目标是给A加壳,那么就是给A这个so加上启动代码(在初始化数组中或jni-onload实现?),也就是把loader代码写入A。loader代码包含B库甚至其他so,这就是C、B合一。 壳基本上都这样实现。
|
能力值:
( LV11,RANK:180 )
|
-
-
13 楼
tDasm 你的目标是给A加壳,那么就是给A这个so加上启动代码(在初始化数组中或jni-onload实现?),也就是把loader代码写入A。loader代码包含B库甚至其他so,这就是C、B合一。 壳基本上 ...
不一定在初始化数组,在哪都无所谓, inline hook 想在哪启动就在哪启动, c是shellcode,b是payload。
|
能力值:
( LV11,RANK:180 )
|
-
-
14 楼
ddssxk 大佬,可分析下实现的demo吗
如何扩展A或B部分实现不是这贴要讲的内容。 C部分找dlopen用多少个字节实现看个人的能力。 举个例子,可以是相对偏移定位自身REL/GOT--->找到libc--->popen()--->执行 cat /proc/pid/maps |grep libdvm.so基址 --->解析dvm.so的REL找到dlopen。
|
能力值:
( LV11,RANK:180 )
|
-
-
15 楼
爱吃菠菜
ddssxk
大佬,可分析下实现的demo吗
如何扩展A或B部分实现不是这贴要讲的内容。C部分找dlopen用多少个字节实现看个人的能力。举个例子,可以 ...
魔改ELF,一个字节不用的直接拿到dlopen地址。如果你有兴趣,可以加我一起讨论。 不过现在都是vmp了,这些玩意纯粹是闲的找事做,搞定了也没太多用处。。
|
|
|