dcc
dcc copied to clipboard
Jar包这种sdk层面的转换是否有什么方案呢
像dex apk这种主要还是针对于编译后的加固,如果是开发过程中的针对组件形式的保护可能我觉得碰到的场景会更多一点
我觉得可以像dcc的demo一样,弄两个工程.用Java工程编译出apk或者把jar先转成dex,然后用dcc处理,将生成的c代码导入到c工程,从c工程成最终的jar.
我觉得可以像dcc的demo一样,弄两个工程。用Java工程编译出apk或者把罐先转成dex,然后用dcc处理,将生成的c代码导入到c工程,从c工程成最终的jar 。
很抱歉,借楼主楼层一用。 关于#4那个问题,因为被关闭了issue,我无法回复。 No such file or directory: '/tmp/dcc-project-6vv47sj6/libs/x86_64/libnc.so,这种错误是因为我的apk本身有多个平台的so,而我却指定APP_ABI := armeabi-v7a这样编译单一的so。DCC默认编译apk内自带的所有架构的so,所以才会出现这种报错。
dcc默认只编译armeabi-v7a,apk支持其他abi的话,需要自己加上.
其实我觉得将jar使用d8或者dx转成dex后使用dcc进行处理,处理时标记出所有已经处理的方法或类,然后使用asm对原jar进行修改
其实我觉得将jar使用d8或者dx转成dex后使用dcc进行处理,处理时标记出所有已经处理的方法或类,然后使用asm对原jar进行修改
这个方案更友好,比较好自动化.
其实我觉得针对dex的这种也可以加入自动化,反编译后插入一个smali用于控制loadLibray so,用全局变量控制so是否已被加载,然后在每个已处理的类中加入static{}来加载这个方法
其实我觉得针对dex的这种也可以加入自动化,反编译后插入一个smali用于控制loadLibray so,用全局变量控制so是否已被加载,然后在每个已处理的类中加入static{}来加载这个方法
这是的通用的方案.大佬兴趣的话可以pr一波. 不过如果先用androguard解析下AndroidManifest.xml,看app有没有指定appComponentFactory,或者是Application,有的话只需要在他们的static代码块插入so加载代码就可以了;都没有的话再用这个方案.这样看起来更干净些.
@Virenz 用dx把jar转dex是没有问题的,毕竟这是官方生成dex的方式,或者用r8,但如果直接把修改后的dex再使用dex2jar转回jar包,简单逻辑一般没问题,复杂逻辑转换过程中就会出错了
@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar
可以参考下市面上的一些加固产商对sdk做加固的做法,比如易盾、360等
@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar
老哥解决dcc加固jar/aar了吗
@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar
老哥解决dcc加固jar/aar了吗
同问