amimo
amimo
> 其实我觉得将jar使用d8或者dx转成dex后使用dcc进行处理,处理时标记出所有已经处理的方法或类,然后使用asm对原jar进行修改 这个方案更友好,比较好自动化.
> 其实我觉得针对dex的这种也可以加入自动化,反编译后插入一个smali用于控制loadLibray so,用全局变量控制so是否已被加载,然后在每个已处理的类中加入static{}来加载这个方法 这是的通用的方案.大佬兴趣的话可以pr一波. 不过如果先用androguard解析下AndroidManifest.xml,看app有没有指定appComponentFactory,或者是Application,有的话只需要在他们的static代码块插入so加载代码就可以了;都没有的话再用这个方案.这样看起来更干净些.
ndk版本是多少,用最新的试试.
我都是在ubuntu下测试的,mac我没有测试过.你先网上看看" 'INT64_MAX' was not declared in this scope" 这种错误怎么解决的,有可能是哪个头文件没有include进来.我晚上看看.
```sh vi project/jni/Application.mk ``` 把第4行打开,第5行注释掉. 看来我这个提示做得很搓啊,之前有人问过,应该做成自动编译原包支持的abi的.
把第四行改成这样.加上x86 ``` APP_ABI := armeabi-v7a arm64-v8a x86 ```
需要插入加载libnc.so代码,参考这个[回复](https://github.com/amimo/dcc/issues/4#issuecomment-537735289)
加载库有两种改法. 1.有工程源码,改源码,就用这个try catch 2.没有java源码,改smali.参考我回复的smali.
你看这个方法的代码是不是已经隐藏了 "Java_com_lfgam_xinji_ActiveCodeActivity_onCreate". 如果你要隐藏所有方法,把filter.txt文件最后一行打开.