Comments (6)
JNI动态注册对比静态有什么优点?
从防护角度看,动态跟静态我觉得区别不大,通过hook JNI RegisterNative方法就可以很容易获取到函数名和地址对应关系.
from dcc.
JNI静态注册
程序运行效率低,因为初次调用native函数时需要根据根据函数名在JNI层中搜索对应的本地函数,然后建立对应关系,这个过程比较耗时;
防护的话,通过ollvm应该可以加密字符串。能增加一些防护强度。也不会使逆向者一下子(静态注册比较明显)就hook对应的方法,得到参数和返回值。
from dcc.
JNI静态注册
程序运行效率低,因为初次调用native函数时需要根据根据函数名在JNI层中搜索对应的本地函数,然后建立对应关系,这个过程比较耗时;
我觉得一切效率问题在在满是JNI反射的代码里面都不是问题.
防护的话,通过ollvm应该可以加密字符串。能增加一些防护强度。也不会使逆向者一下子(静态注册比较明显)就hook对应的方法,得到参数和返回值。
这个倒是可以稍微增加一点点难度,但是通过hook JNI RegisterNatives也是马上可以搞定的.
from dcc.
我觉得一切效率问题在在满是JNI反射的代码里面都不是问题.
我觉得你是正确的
这个倒是可以稍微增加一点点难度,但是通过hook JNI RegisterNatives也是马上可以搞定的.
百尺竿头更进一步?
大多数情况下,和逆向者打的是一场心理战。
仅仅只是建议。
from dcc.
我觉得没有什么必要.
直接让他们看到Native代码,说不准还能直接把他们唬住了:-)
from dcc.
最新代码已支持动态注册
from dcc.
Related Issues (20)
- 有点不太了解指定编译方法 HOT 3
- Exception: ABI x86 is not supported! HOT 4
- Exception: unkonw type vResult_43 HOT 3
- 编译后adb install 错误 提示 资源4字节对齐 HOT 2
- win10 HOT 2
- BUG HOT 2
- 不能安装 与架构有关吗 HOT 1
- WIN10 找不到指定文件报错 HOT 2
- 直接使用python 脚本加固报错 HOT 1
- make: *** No rule to make target HOT 4
- dcc java
- win10测试tests发现应该使用python dcc.py而不是python3 dcc.py HOT 3
- 怎么解决duplicate symbol: .datadiv_decode HOT 1
- 怎么编译静态方法呢
- 这个不能通过定时任务或者脚本去执行嘛? HOT 4
- 怎么编译到aar的加固?
- Phi消除问题 HOT 2
- apktool-r 导致闪退 HOT 2
- 无法使用dex2c HOT 1
- Support 16 KB page sizes? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dcc.