首页
社区
课程
招聘
[原创]华为内核重新编译踩坑记
2020-5-18 14:02 11889

[原创]华为内核重新编译踩坑记

2020-5-18 14:02
11889

华为内核重新编译踩坑记

前几天有朋友找我帮他跟一个加密,由于js太乱了,想从app入手,于是打算用frida脱壳,结果发现报错
Failed to attach: remote_write PTRACE_POKEDATA head failed: 5
查询后发现是华为内核没有开启Ptrace,正好看到了吾爱的一篇文章华为手机重新编译内核开启Ptrace,开始照着他的步骤开始编译,发现了很多坑点,在这里记录一下。

1.内核编译

"然后按照 Code_Opensource\README_Kernel.txt 文件里提示进行内核编译。"
这里的说法没有说清,可能大佬自己感觉不是难点,我参考了另一篇文章Kernel Hack实战:修改并编译手机内核源码对抗反调试 ,开始编译。从这里噩梦开始。

1.1.gcc报错

我按照文章说的一步步开始,果然发生了这个错误

解决后又出现了aarch64-linux-android-gcc not found
我找了很多资料没有找到,后来发现bin目录下确实没有gcc这个文件,我又去
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/
看了一眼后发现

好吧,最新的已经移除了gcc,原谅我英语不好,没看仔细,于是重新下载了8.0版本的aarch64-linux-android-gcc,终于这个报错解决了。

1.2. recipe for target 'xxx' failed

这个错误
Makefile:152: recipe for target 'sub-make' failed
是再次编译出现的,因为确实对这块编译没有做过,就再次查找资料,原因是make版本太高的问题,我的是ubuntu18 make4.1,网上说make降级到3.81就行。

1.3. make降级编译失败

从make4.1降级到3.81再次出现错误
undefined reference to '__alloca'
国外某站发现了解决办法,把
# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
改成
# if _GNU_GLOB_INTERFACE_VERSION >= GLOB_INTERFACE_VERSION
顺利编译成功make3.81。

1.4. error: linux/netfilter/xt_mark.h: No such file or directory

终于make降级成功,再次开始编译。又遇到了
error: linux/netfilter/xt_mark.h: No such file or directory
我找了很多资料也没解决。
Ubuntu12.04编译android4.3源码问题集锦这里有一个解决办法,因为华为的内核目录不同,我完全按照他的解决办法没有解决成功。将/usr/include/linux/netfilter/xt_mark.h 复制到了kernel/include/linux/netfilter/xt_mark.h
可惜还是各种报错,一度想要放弃。
很幸运的是,我重新看了一下external/iptables/include/linux/netfilter/这个目录里面的xt_MARK.h,发现其实是存在这个文件的,但是由于我当时是从win下修改好内核源码的配置,重新打包发给ubuntu的,因为win的大小写不敏感,导致xt_mark.hxt_MARK.h不能同时在一个目录,xt_mark.h被重命名为了xt_mark(1).h
知道了问题就好解决了,于是我重新在ubuntu里下载了内核源码,修改配置,果然,这次编译很顺利。

2.打包刷入手机

后面就是跟着华为手机重新编译内核开启Ptrace修改sh的配置了,并没有遇到什么困难。成功刷入手机,成功运行frida,脱壳成功。

总结

由于是一篇回忆的记录,之前并没有截图,费了一天多才搞好,后面想一想确实不是很难,最后一步差点进行不下去,直接在ubuntu下执行,应该会很顺利。遇到的几个坑在网上只找到了一些只言片语,总结一下,希望对后来人有所帮助。


[培训]《安卓高级研修班(网课)》月薪三万计划

最后于 2020-5-18 14:02 被nws0507编辑 ,原因:
收藏
点赞8
打赏
分享
最新回复 (5)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_zzz_587 2021-7-12 16:12
2
0
楼主,请教一下,我编译的时候报这个异常,试了很多方式都没有解决,不知道你有没有遇到过?

In file included from drivers/clk/qcom/mdss/mdss-dsi-pll-10nm.c:24:
In file included from drivers/clk/qcom/mdss/mdss_pll_trace.h:116:
./include/trace/define_trace.h:88:10: fatal error: './mdss_pll_trace.h' file not found
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/trace/define_trace.h:83:32: note: expanded from macro 'TRACE_INCLUDE'
# define TRACE_INCLUDE(system) __TRACE_INCLUDE(system)
                               ^~~~~~~~~~~~~~~~~~~~~~
./include/trace/define_trace.h:80:34: note: expanded from macro '__TRACE_INCLUDE'
# define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/stringify.h:10:27: note: expanded from macro '__stringify'
#define __stringify(x...)       __stringify_1(x)
                                ^~~~~~~~~~~~~~~
./include/linux/stringify.h:9:29: note: expanded from macro '__stringify_1'
#define __stringify_1(x...)     #x
                                ^
<scratch space>:145:1: note: expanded from here
"./mdss_pll_trace.h"
^~~~~~~~~~~~~~~~~~~~
1 error generated.
make[4]: *** [scripts/Makefile.build:340: drivers/clk/qcom/mdss/mdss-dsi-pll-10nm.o] Error 1
make[3]: *** [scripts/Makefile.build:653: drivers/clk/qcom/mdss] Error 2
make[2]: *** [scripts/Makefile.build:653: drivers/clk/qcom] Error 2
make[1]: *** [scripts/Makefile.build:653: drivers/clk] Error 2
make: *** [Makefile:1124: drivers] Error 2
雪    币: 2559
活跃值: (483)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
nws0507 2021-7-15 23:29
3
0
wx_zzz_587 楼主,请教一下,我编译的时候报这个异常,试了很多方式都没有解决,不知道你有没有遇到过? In file included from drivers/clk/qcom/mdss/mdss-dsi- ...
好像没有   时间太久了  记不太清了
雪    币: 1657
活跃值: (8466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
你瞒我瞒 2023-2-4 09:40
4
0
wx_zzz_587 楼主,请教一下,我编译的时候报这个异常,试了很多方式都没有解决,不知道你有没有遇到过? In file included from drivers/clk/qcom/mdss/mdss-dsi- ...
我也遇到了这个问题,不知道怎么解决
雪    币: 13117
活跃值: (1135)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
严启真 2023-2-4 11:24
5
0
你瞒我瞒 我也遇到了这个问题,不知道怎么解决[em_5]
linux英文版,中文版易出问题
雪    币: 1657
活跃值: (8466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
你瞒我瞒 2023-2-5 16:44
6
0
严启真 linux英文版,中文版易出问题
感谢,我已经解决了这个问题了,我使用mac下载内核代码导致文件丢失。在Ubuntu中下载就好了。
游客
登录 | 注册 方可回帖
返回