能力值:
(RANK:270 )
|
-
-
2 楼
两个角度吧。
Dalvik层的instrumentation,可以看下xposed(版面上有很多资料)、ddi/adbi、Cydia Substrate。
另一个角度,把各类工具集移植到Android中,也没什么问题,参考一下各类类似于AIDE、Android Emulator Terminal一类的项目。
在手机上对dex做重打包,而且自己去实现基础库,我觉得才是另一种形式的重造轮子吧。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
csmail想要达到的目标是不需要重新打包
我用native的elf文件举个例子。baksmail实现的功能,就好比是将so还原成c代码,然后你可以修改c代码,然后再重新编译成so。这种方式对逆向来说不是特别适合,太“伤筋动骨”了,要做到通用性,一定要选择改动最小的方式。
csmail的目标是分析出dex和odex的基本结构,就好像一个基础的elf库,分析出so文件的结构,然后对感兴趣的位置进行进一步分析后直接修改,不要重新构建!
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
csmail 蛮不错的,支持楼主
|
能力值:
(RANK:270 )
|
-
-
5 楼
C/C++写的dex格式解析库蛮多的啊,比如Android源码里、androguard里、radare里都有。。
(其实我感觉自己还是没真正catch住楼主的想法,抱歉……)
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
是有吧,但是没有独立出来,没有提供接口?
我举一个实际的例子,简化说明如下:
一个app启动时会弹个框,说"hello world"。你很讨厌这个东西,想把它干掉。无疑,这个弹框就是odex里面的几条smail代码,nop掉就可以了。但是如何定位呢?
目前通行的方法是,用baksmail解包成java代码,修改之,再重新打包。但是这么做有两个问题:
1 odex的重新打包可能会依赖到一些其他的文件
2 重新打包这个动作太"重",兼容性无法保证
那么我就想,能不能弄一个更基础的smail库,作用是将odex的各个部分解析出来,然后做进一步操作。比如在这里例子中,库可以列出所有调用了alert的位置,我们从中找到参数为"hello world"的那一个,然后库可以告诉你这个调用在odex中的偏移,于是我们可以直接到偏移处改之为nop指令。这种方法比重新打包风险要小得多。
当然,这只是用法之一!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
手机上的字节码编辑器好像跟楼主说的有点像。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
这个dalvik字节码编辑器可以做到吧
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这个想法可以用XPosed来实现,但是楼主的意思应该不是想通过hook,而是通过patch
C来Parse dex是很容易的事情,但是楼主应该是想实现一套通用的修改Dex的框架
但是问题是,怎么确定你要Patch的target,听楼主的意思应该不是通过API,而是行为吧?
如果是通过行为,就无法实现通用,所以又回到了XPosed的基于App的方式了。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
dalvik字节码编辑器 貌似和我说的很接近了,待我去研究研究!
谢谢各位的建议!
|
|
|