Android逆向分析基础-反破解技术
2016-03-18 13:48
886 查看
对抗反编译
通过反编译工具不支持的操作码等, 对抗反编译, 意义不大
对抗静态分析
代码混淆
NDK保护
适合关键代码, 但总感觉舍近求远
外壳保护
加壳原理及技术之一
对抗动态调试
检测调试器
检测模拟器
ro.product.model 在模拟器中为sdk
ro.build.tags在模拟器中为test-keys
ro.kernel.qemu在模拟器中为1, 在正常手机里没有
防止重编译
检查签名
通过反编译工具不支持的操作码等, 对抗反编译, 意义不大
对抗静态分析
代码混淆
NDK保护
适合关键代码, 但总感觉舍近求远
外壳保护
加壳原理及技术之一
对抗动态调试
检测调试器
android.os.Debug.isDebuggererConnected()
检测模拟器
ro.product.model 在模拟器中为sdk
ro.build.tags在模拟器中为test-keys
ro.kernel.qemu在模拟器中为1, 在正常手机里没有
防止重编译
检查签名
public int getSignature() { PackageManager pm = getPackageManager(); PackageInfo pi; int sig; try { pi = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES); Signature[] s = pi.signatures; sig = s[0].hashCode(); Toast.show(s[0].toString()); } catch (Exception e1) { sig = 0; e1.printStackTrace(); } return sig; }
2. 校验保护 检查classes.dex的MD5或CRC值
相关文章推荐
- context和context和android的关联
- android开发——跨进程通讯数据传递(三)
- Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]
- jboss和.net和android的关联
- Android二级分类列表ListView GirdView in ViewPager
- Android MediaPlayer视频播放详情
- 在低版本android系统上实现Material design应用(转载)
- android实现音乐波动条形图
- android-TextureView参考例子
- RemoteViews在通知栏和小组件中的应用
- Android 定制自己的launcher
- Android Studio修改包名实战
- android4.4修改通知栏图标和文字大小
- Android开源项目分类汇总
- Android:xUtils3浅析(一)——视图注入
- android源码查看所有分支切换分支
- Android 命名空间和自定义属性
- Android开发笔记(八十二)系统软件兼容
- [技术讨论]关于android端apk退出方式的设计
- Firemonkey Android 虚拟机