经过百度加固的有下面特征
可以看见百度调用了系统函数
我们可以直接修改smali然后反编译回去,但是百度在so有检测签名,我们利用修改android内核的办法让百度无法检测,如下
修改完整的内核然后编译
ServiceProxy.java -------------------
ActivityManagerService.java------ -Debug.java-----VMDebug.java--- dalvik_system_VMDebug.cpp
Watchdog.java --------------------
修改1:
frameworks\base\core\java\android\os\Debug.java
修改此函数为
public static boolean isDebuggerConnected() {
returnVMDebug.isDebuggerConnected();
}
public static boolean isDebuggerConnected(){
return false;
}
然后加入函数
public static booleanisSnowDebuggerConnected() {
returnVMDebug.isDebuggerConnected();
}
然后改waitForDebugger函数中的isDebuggerConnected全部改成isSnowDebuggerConnected
将下面2个文件中的isDebuggerConnected全部改成isSnowDebuggerConnected
修改3
frameworks\base\services\java\com\android\server\am\ActivityManagerService.java
修改4
frameworks\base\services\java\com\android\server\Watchdog.java
不让你擅自修改API,因为你修改的是@hide的,解决办法
要先makeupdate-api
再make得到system.img
至于怎么改android源码然后编译运行,请参考本SnowNightDr博客的另外几篇文章