cp : https://segmentfault.com/a/1190000005095406 乱序原理 为了增加逆向分析的难度,可以将原有代码在 smali 格式上进行乱序处理同时又不会影响程序的正常运行.乱序的基本原理如下图所示,将指令重新布局,并给每块指令赋予一个 label,在函数开头处使用 goto 跳到原先的第一条指令处,然后第一条指令处理完,再跳到 第二条指令,以此类推. 乱序流程 下面步骤需要使用到的 smali, baksmali 和 dex2jar 工具可以在:/tools…
cp : https://segmentfault.com/a/1190000005128037 在开发过程中字符串不可避免,但是这些字符串也可能是破解的关键点,比如服务器的地址和错误提示这些敏感的字符串信息.如果这些字符串采用硬编码方式,很容易通过静态分析获取.之前的一篇blog以提示的字符串以突破点 Android程序逆向分析 普通方式定义字符串 Java 中定义一个字符串: private String normalString(){ String str = "Hello world&q…
cp : https://segmentfault.com/a/1190000005105973 DEX校验 classes.dex 是 Android 虚拟机的可执行文件,我们所写的 java 代码其实都在这里面,所有很多对应用程序的篡改都是针对 classes.dex 文件的.可以找一个 APK 解压就可以看到 classes.dex 文件.APK 其实就是一个压缩包,通过将后缀名改为zip 就可以直接解压,或者用 unzip 命令. 编写代码 代码比较简单,这里是通过建计算好的 crc 保…
java两个线程互相访问的时候并不能按照你的思路运行,因为执行语句可能有前后快慢之分,比如a=1和flag=true.下面线程B访问的时候 这两个赋值语句不一定按顺序执行 产生这种原因是因为指令重排序造成的.这种重排只会出现在不影响串行的结构下进行指令的优化(去掉等待的气泡,这是一种编译器的自动优化避免过多等待) 此问题在java并发线程实战中也有说明 代码可见性问题(本质还是编译器优化造成值的中间改变)…
标 题: [原创]APK自我保护方法 作 者: MindMac 时 间: 2013-12-28,21:41:15 链 接: http://bbs.pediy.com/showthread.php?t=183116 APK 的自我保护 MindMac 2013/12/28  由于 Android 应用程序中的大部分代码使用 Java 语言编写,而 Java 语言又比较容易进 行逆向,所以 Android 应用程序的自我保护具有一定的意义.本文总结了 Android 中可以使 用的一些 APK 自我…
  以下内容来自搜狗实验室技术交流文档,搜狐公司研发中心版权所有,仅供技术交流   摘要 --------- 乱序优化是现代编译器非常重要的特性,本文介绍了什么是乱序优化,以及由此引发的一个bug,希望引起各位开发者的注意.   乱序优化 --------- 乱序优化和cpu的乱序执行很类似. 现代cpu都采用流水线结构,流水线的各级可以同时执行不同的指令,也只有用多条指令将流水线填满以后,cpu的能力才能得到充分发挥. 乱序执行(out-of-order execution)是指cpu允许将多…
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android全部系统自带的控件其中,ListView这个控件算是使用方法比較复杂的了,关键是使用方法复杂也就算了,它还常常会出现一些稀奇古怪的问题.让人非常头疼.比方说在ListView中载入图片,假设是同步载入图片倒还好,可是一旦使用异步载入图片那么问题就来了,这个问题我相信非常多Android开发人员都以前遇到过.就是异步载入图片会出现错位乱序的情况.遇到这…
[现象] 代码如下: var list = [{ n: "a", v: 1 }, { n: "b", v: 1 }, { n: "c", v: 1 }, { n: "d", v: 1 }, { n: "e", v: 1 }, { n: "f", v: 1 }, { n: "g", v: 1 }, { n: "h", v: 1 }, { n: &qu…
项目更新遇到问题   Android项目开发中经常遇到下载更新的需求,以前调用系统安装器执行安装操作代码如下: Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(path)), "application/vnd.android.package-archive"); context.s…
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Android Studio编码 Android Studio(四):Android Studio集成Genymotion Android Studio(五):修改Android Studio项目包名 Android Studio(六):Android Studio添加注释模板 Android Studio…