吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30619|回复: 181

[Android 原创] 修改源码实现全局(无需root)注入躲开注入检测

    [复制链接]
发表于 2016-12-14 12:59 | 显示全部楼层
本帖最后由 大王叫我来挖坟 于 2016-12-15 22:36 编辑

看这篇文章需要的技能
1.会编译android源码(如果你不愿意编译源码,还有另外一种办法,下面我会提供)
2.会使用substrate或者xposed
以上2个网上资料很多我就不啰嗦了。
这篇帖子将讲述什么内容
1.修改源码或者不修改源码,实现全局注入,这样以后随便你怎么hook都行
附加内容
讲如何编译android源码和刷机
android so hook的源代码
一、市面上目前的hook和注入工具
市面上目前的hook有substrate,xposed,或者一些开源的自己实现的hook和注入,但是会调用一些系统api或者自身一些特征,会被加固检测到,故提供以下文章

二、全局注入的三种思路
首先我们注入的目的,就是让我们写的钩子代码xx.so可以注入到yyy程序里面去,这样我们的xx.so就可以调用诸如mprotectmmap来修改内存属性,去修改目标程序的内存可以来实现got hook或者inline,异或修改机器码的跳转,异或修改数据实现内存修改器。

故实现全局注入有三种办法
思路一:替换zygote, xposed那种,不多说由于其特征会被检测到,不啰嗦了网上资料很多
思路二:so加载的过程看
可以修改linker源码,在其加载程序so的时候,比如在do_dlopen
soinfo*do_dlopen(const char* name, int flags)
{
                   soinfo* si = find_library(name); //查找动态链接库
                   if (si != NULL)
                   {
                            //加载我们的so
                   }
}
dlopen我们的so(试过失败告终,linker不允许使用malloc函数等基础函数,而一些libc的一些基本函数,如fgets依赖于malloc的实现)
思路三:apk启动java层的代码看
(成功这也是我要介绍的)

三、根据思路三
修改 frameworks/base/core/java/android/app/ActivityThread.java文件
handleBindApplication函数插入如下代码
private voidhandleBindApplication(AppBindData data)
{
        //snownote 2016/12/
        //=================全局注入之修改java===================================================
        Log.e("snowchangeFrameworkInject","--processname="+data.processName);
        File ssfile=new File("/data/local/changeFrameWorkHookConfig.txt");
        if(ssfile.exists())
        {
            FileReader ssfr = null;
            try {
                ssfr = new FileReader(ssfile);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            BufferedReader ssbr=new BufferedReader(ssfr);
            String tagetPackage=null;
            String soPath=null;
            try {
                tagetPackage=ssbr.readLine();//得到进程名一般为包名
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(tagetPackage!=null)
            {
                try {
                    soPath=ssbr.readLine();//得到要加载的so路径
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
                ssfr.close();
                ssbr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(data.processName.equals(tagetPackage))
            {
                Log.e("snowchangeFrameworkInject ","----tagetPackage"+tagetPackage);
                if(soPath!=null)
                {
                    Log.e("snowchangeFrameworkInject ","---start-load-soPath"+soPath);
                    System.load(soPath);  
                }
            }
        }
      //=============================================================================
然后编译源码,将changeFrameWorkHookConfig.txt文件内容设置为
第一行,你要注入的程序的进程名,一般写包名就行了 com.carrot.carrotfantasy
第二行,你要注入的so路径/data/local/libhooktest.so
txt文件push到手机的/data/local/目录,即可不用实现注入而让我们的钩子代码进入程序进程
接下来就是怎么写libhooktest.so这个了
办法一:你可以使用substrate提供的hook api把你的hook代码编译成一个so
办法二:你可以不用别人的hook框架,自己实现hook代码,这里我提供一份我以前整合修改好的hook代码,包括inline hook和got hook大家凑合着用吧(此ininline hook中指令重定位部分,参考网友ele7enxxh,感谢他解决了繁琐的指令重定位问题,有兴趣的可以看github上他的完整的他有对多进程进行处理哦!!)。

四、不想修改源码的请看这里 look me!!!!
Pull出你的设备/system/framework/framework.jar此文件,
baksmali反编译出smalijava -jar D:\run_ProgramFile\baksmali_smali\baksmali.jar -o  classout/ framework.jar
找到ActivityThread.smali,把我提供的(我这里是android4.4)替换回去,再重新编译回去,
java -jar D:\run_ProgramFile\baksmali_smali\smali.jarclassout/ -o framework_new.jar

如果你别的android系统,也可以自己写个demo把得到的smali自己加入ActivityThread.smali
push到设备就行了,记得重新设备生效

最后附加内容
inline hookgot hook源代码(曾经拿保卫萝卜和我的世界测试成功)
和我曾经编译android4.x+2.3x+5.1x源码+修改源码真机运行的详细笔记(网上编译android源码的文章多如牛毛啊,实际详细的却很少)
我修改过的framework.jar,囧文件大小不能超过1MB,所以jar就不上传了,大家看smali吧

对于不想root的不能push到/data/local目录的可以先push到别的目录,然后cp过去


修改源码实现全局注入躲开注入检测.doc

20.58 KB, 下载次数: 140, 下载积分: 吾爱币 -1 CB

修改源码实现全局注入躲开注入检测

ubuntu编译android内核源码笔记.doc

228.48 KB, 下载次数: 101, 下载积分: 吾爱币 -1 CB

ubuntu编译android内核源码笔记

ubuntu编译android源码用真机运行.doc

416.98 KB, 下载次数: 102, 下载积分: 吾爱币 -1 CB

ubuntu编译android源码用真机运行

ubuntu编译android4.x 2.3x 5.1x源码笔记.doc

405.22 KB, 下载次数: 127, 下载积分: 吾爱币 -1 CB

ubuntu编译android4.x+2.3x+5.1x源码笔记

myHookAll.zip

13.2 KB, 下载次数: 123, 下载积分: 吾爱币 -1 CB

mychange_framework.zip

115.36 KB, 下载次数: 120, 下载积分: 吾爱币 -1 CB

mychange_framework

免费评分

参与人数 60吾爱币 +60 热心值 +57 收起 理由
fu90 + 1 + 1 我很赞同!
b_night + 1 我很赞同!
藿香正气 + 1 + 1 思路很新颖 谢谢楼主分享
astgo9988 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
lsq8880 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
叶pp123 + 1 + 1 已答复!
safer + 1 + 1 谢谢@Thanks!
BattleCall + 1 + 1 谢谢@Thanks!
lianaini + 1 + 1 热心回复!
AdamWei + 1 + 1 谢谢@Thanks!
maoxuechuen + 1 + 1 谢谢@Thanks!
魅影201314 + 1 + 1 谢谢@Thanks!
真正的我 + 1 + 1 鼓励转贴优秀软件安<span id="transmark" style="display: none;
啦灯是我干掉的 + 1 + 1 very good!
zhuzaiting + 1 + 1 谢谢@Thanks!
趁火打劫 + 1 + 1 我很赞同!
duanbin_109 + 1 + 1 我很赞同!
h080294 + 1 + 1 谢谢@Thanks!
chinacore_zhao + 1 + 1 我很赞同!
peter_king + 1 谢谢@Thanks!
edust + 1 我很赞同!
kkpljat + 1 + 1 鼓励转贴优秀软件安全工具和文档!
luoky7 + 1 + 1 我很赞同!
Catshark + 1 + 1 我很赞同!
lawlier + 1 + 1 谢谢@Thanks!
wjh000 + 2 + 1 我很赞同!
kxt123456789 + 1 用心讨论,共获提升!
MARNM + 1 + 1 热心回复!
kongren + 1 谢谢@Thanks!
1051726621 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
2864095098 + 1 + 1 热心回复!
霸气侧漏m2 + 1 + 1 热心回复!
scraw + 1 + 1 谢谢@Thanks!
杀杀傻 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
风予 + 1 + 1 热心回复!
kendling + 1 + 1 谢谢@Thanks!
孤独剑客78 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
denzhengwei + 1 + 1 用心讨论,共获提升!
xiaoxu1984 + 1 + 1 已答复!
风动鸣 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
feng3593 + 1 谢谢@Thanks!
Doc__ + 1 用心讨论,共获提升!
Redar + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wcj1997 + 1 + 1 已答复!
zhenyan + 1 我很赞同!
lm531142331 + 1 谢谢@Thanks!
miracles + 1 + 1 用心讨论,共获提升!
无瑕黑心肠 + 2 + 1 谢谢@Thanks!
xuanle6 + 1 谢谢@Thanks!
很快再相见123 + 1 我很赞同!
wnagzihxain + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wi5101 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wxw1145897898 + 3 + 1 鼓励转贴优秀软件安全工具和文档!
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
等待记忆中 + 1 + 1 谢谢@Thanks!
Zde_Hui + 1 + 1 用心讨论,共获提升!
zedong + 1 + 1 用心讨论,共获提升!
mouse31rat + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ZOKEKAI + 1 + 1 谢谢@Thanks!
JUNGLE_CN + 2 + 2 已答复!

查看全部评分

本帖被以下淘专辑推荐:

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| 发表于 2016-12-21 10:18 | 显示全部楼层
edust 发表于 2016-12-20 18:02
这个不支持你,真对不起我自己。
最后那个方法有点忽悠呀。 明明 push 上去要root权限。。

哈哈,我是指的不需要root是指,刷机这些代码是改在源码里面的,请编译源码然后刷机就不需要替换那个jar了,也就不需要root了,刷机和编译源码的详细过程我文档里面有,建议你还是刷机吧

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-15 22:37 | 显示全部楼层
本帖最后由 大王叫我来挖坟 于 2016-12-15 22:39 编辑
zeif 发表于 2016-12-15 13:47
说好的无需root呢?
替换framework.jar没root怎么做?

谢谢回复,我的意思是指刷机之后的设备无需root,建议使用谷歌手机编译完毕源码然后刷机,手机自己用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:04 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:06 | 显示全部楼层
学习了!赞一个

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:08 | 显示全部楼层
不玩LINUX 但是分享精神值得支持

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:17 | 显示全部楼层
赞一个哦

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:20 | 显示全部楼层
感谢分享!!!!!!!!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 13:46 | 显示全部楼层
顶,感谢,赞一个

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 14:04 来自手机 | 显示全部楼层
赞,然而我不懂

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 14:16 | 显示全部楼层
赞一个哦

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2016-12-14 14:26 | 显示全部楼层
这个玩的6, 强烈支持一下哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2017-4-24 09:36

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表