美文网首页
修改手机内核绕过ptrace

修改手机内核绕过ptrace

作者: M_天河 | 来源:发表于2020-08-30 00:00 被阅读0次

    前面一篇文章《Android反调试手段收集》在讲常用的反调试方法中有一条是检测进程的TracerPid的值正常情况下为0,在被调试时变成父进程的pid,应对这种情况我们可以通过修改手机内核中代码,将这个pid永久性改为0。

    具体方法也都是前人总结的https://bbs.pediy.com/thread-207538.htm,这里只根据自己的设备做一遍操作演示。
    设备:Nexus5
    系统版本:4.4.4

    1,提取出boot.img文件

    首先要有root权限,进入到/dev/block/platform/文件夹下,然后这里会有一个文件夹,在不同手机中这个文件夹名字不一样,我的设备中是msm_sdcc.1,进入后然后再进入by-name文件夹,找一个boot文件,如下:


    记下后面的路径,然后导出boot文件:
    dd if=/dev/block/mmcblk0p19 of=/data/local/boot.img
    adb pull /data/local/boot.img boot.img
    

    权限不够的话就赋下权限值。

    2,用bootimg.exe工具解压boot.img文件

    lcweik大神在上面文章中给出的mac下的工具abootimg,我这里用的是windows下的bootimg.exe
    命令是:bootimg --bootimg boot.img


    boot.img不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头+用gzip压缩过的内核+一个ramdisk内存盘+第二阶段的载入器程序(可选)

    解析后文件如下:

    其中的kernel文件就是内核文件,ramdisk.gz文件解压后就是initrd文件夹下的内容。
    3,处理内核文件

    备份kernel文件,修改文件名为zImage.gz文件,用010打开文件,查找十六进制1F 8B 08 00,这是gz文件的文件头标志,把在这之前的内容全部删掉,然后zImage.gz文件就变成标准的gzip压缩文件了,然后使用gunzip命令或者gzip -d命令解压缩文件,


    这时获取到的zImage文件才是需要处理的文件。
    用ida工具打开zImage文件,处理器类型选择ARM小端,点击ok确认,

    反汇编内存配置页面将ROM和Inputfile的起始地址设置为0xC0008000,因为Linux启动内核的地址就是0xC0008000

    进去后Shift+F12进入字符串页面,全局搜索TracerPid

    选中双击后得到下面地址:0xC0D228A4,然后减去基址0xC0008000,得到0xD1A8A4

    将文件用010打开,跳转到这个地址,在这里直接修改字符串内容,将TracerPid后面的%d改为0\t或者0\n,注意不能值改为0,要保证修改后字符串对齐。

    至此修改image文件完成。
    4,生成修改后的boot.img文件

    用gzip压缩zImage文件gzip -n -f -9,生成zImage.gz文件,然后将生成的zImage.gz文件,覆盖到kernel文件中的对应位置,即我们删除的内容之后的位置1F8B0800,这里一定要注意仔细,不能有文件大小错误。
    通过bootimg工具生成boot文件。

    5,刷机

    启动fastboot,运行fastboot flash boot boot-new.img刷入重启即可。

    Tips:

    还有一种最常见的反调方式就是在app的am文件中添加android:debuggable="false",

    1. 应对这种反调做的最多的就是反编译app,将属性值修改为“true”;
    2. 但是每次这样操作未免麻烦,有大神给出了mprop工具,只需将可执行文件复制进手机里,运行./mprop ro.debuggable 1即可,但是这个工具修改的是内存中的值,也就是说并不是永久的,每次重启还得再改一次;
    3. 其实这个属性值,是在系统根目录下的default.prop文件中的,设备启动就会解析存入内存中。所以如果我们能够把这个文件中的值改成1,那么就永久有效了。在上面解包boot.img的时候,说到了有一个initrd目录,其实default.prop就是在这个目录下



      这里我们直接将其改成1,因为我们现在已经进行了修改boot.img操作,那就顺便把这个功能也给改了。

    相关文章

      网友评论

          本文标题:修改手机内核绕过ptrace

          本文链接:https://www.haomeiwen.com/subject/ylugrktx.html