首页
社区
课程
招聘
[讨论]是否有方法可以在dex文件执行时动态修改某一个函数的代码
发表于: 2016-7-20 17:45 7546

[讨论]是否有方法可以在dex文件执行时动态修改某一个函数的代码

2016-7-20 17:45
7546
加壳后的apk文件中,原始dex文件是被加密的,但是在应用启动以后dex文件会在内存中被还原出来,这样通过ida把内存中解析dex文件相关的数据结构dump下来还是可以还原原始的dex文件。

有没有这种方法,被加载到内存中的dex文件还是密文的,包括内存中解析dex文件相关的数据结构存储的内容也都是密文的,在执行dex中的某个函数的时候hook掉虚拟机的某个方法,临时把要执行的函数解密执行。这样既不影响应用的运行,也不会被dump出来原始的dex文件。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 206
活跃值: (840)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
已经有了这种壳了,不过不是加密,是先nop掉,不然过不了验证
2016-7-20 18:01
0
雪    币: 214
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
抽代码的壳好像就是你说的这样
2016-7-20 21:25
0
雪    币: 47
活跃值: (418)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
hook libdvm.so 中的函数可以达到这种效果
2016-7-21 09:56
0
雪    币: 15
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢,我现在想的是只把函数的代码部分加密,其他字段不加密
2016-7-21 11:53
0
雪    币: 15
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
多谢,有相关的帖子吗?
2016-7-21 11:54
0
雪    币: 15
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
多谢,有相关的帖子吗?我发现调用dex中的函数好像有多种不同的路径,这样的话可能要hook很多函数才行,而且有的函数是static的,不知道怎么hook
2016-7-21 11:55
0
雪    币: 7818
活跃值: (1073)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
抽代码壳子可以看这篇http://blog.csdn.net/jltxgcy/article/details/50581259。就是把实际执行的代码放到另一个文件中,再运行时动态链接上。
2016-7-21 14:09
0
雪    币: 15
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢!
2016-7-22 10:46
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
4楼说的是个可行的方法,可以hook 虚拟机执行函数的函数,这样在执行自己函数前,对自己函数进行一个解密就行。
2016-7-22 19:45
0
雪    币: 15
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
现在问题是这个虚拟机执行函数的函数找不到啊,好像不是唯一的一个
2016-7-26 17:40
0
游客
登录 | 注册 方可回帖
返回
//