Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jar包这种sdk层面的转换是否有什么方案呢 #5

Open
qtfreet00 opened this issue Oct 6, 2019 · 12 comments
Open

Jar包这种sdk层面的转换是否有什么方案呢 #5

qtfreet00 opened this issue Oct 6, 2019 · 12 comments

Comments

@qtfreet00
Copy link

像dex apk这种主要还是针对于编译后的加固,如果是开发过程中的针对组件形式的保护可能我觉得碰到的场景会更多一点

@amimo
Copy link
Owner

amimo commented Oct 6, 2019

我觉得可以像dcc的demo一样,弄两个工程.用Java工程编译出apk或者把jar先转成dex,然后用dcc处理,将生成的c代码导入到c工程,从c工程成最终的jar.

@xmhwws
Copy link

xmhwws commented Oct 6, 2019

我觉得可以像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,所以才会出现这种报错。

@amimo
Copy link
Owner

amimo commented Oct 6, 2019

dcc默认只编译armeabi-v7a,apk支持其他abi的话,需要自己加上.

@qtfreet00
Copy link
Author

其实我觉得将jar使用d8或者dx转成dex后使用dcc进行处理,处理时标记出所有已经处理的方法或类,然后使用asm对原jar进行修改

@amimo
Copy link
Owner

amimo commented Oct 6, 2019

其实我觉得将jar使用d8或者dx转成dex后使用dcc进行处理,处理时标记出所有已经处理的方法或类,然后使用asm对原jar进行修改

这个方案更友好,比较好自动化.

@qtfreet00
Copy link
Author

其实我觉得针对dex的这种也可以加入自动化,反编译后插入一个smali用于控制loadLibray so,用全局变量控制so是否已被加载,然后在每个已处理的类中加入static{}来加载这个方法

@amimo
Copy link
Owner

amimo commented Oct 6, 2019

其实我觉得针对dex的这种也可以加入自动化,反编译后插入一个smali用于控制loadLibray so,用全局变量控制so是否已被加载,然后在每个已处理的类中加入static{}来加载这个方法

这是的通用的方案.大佬兴趣的话可以pr一波.
不过如果先用androguard解析下AndroidManifest.xml,看app有没有指定appComponentFactory,或者是Application,有的话只需要在他们的static代码块插入so加载代码就可以了;都没有的话再用这个方案.这样看起来更干净些.

@qtfreet00
Copy link
Author

@Virenz 用dx把jar转dex是没有问题的,毕竟这是官方生成dex的方式,或者用r8,但如果直接把修改后的dex再使用dex2jar转回jar包,简单逻辑一般没问题,复杂逻辑转换过程中就会出错了

@qtfreet00
Copy link
Author

@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar

@blueb0ne
Copy link

可以参考下市面上的一些加固产商对sdk做加固的做法,比如易盾、360等

@zongren
Copy link

zongren commented Apr 27, 2020

@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar

老哥解决dcc加固jar/aar了吗

@cyw3
Copy link

cyw3 commented Dec 16, 2020

@Virenz 参考Android Studio怎么编译jar到dex的就行了 这个阶段没毛病,主要的是怎么针对sdk层面的去处理jar

老哥解决dcc加固jar/aar了吗

同问

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants