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 保…
cp : https://segmentfault.com/a/1190000005095406 乱序原理 为了增加逆向分析的难度,可以将原有代码在 smali 格式上进行乱序处理同时又不会影响程序的正常运行.乱序的基本原理如下图所示,将指令重新布局,并给每块指令赋予一个 label,在函数开头处使用 goto 跳到原先的第一条指令处,然后第一条指令处理完,再跳到 第二条指令,以此类推. 乱序流程 下面步骤需要使用到的 smali, baksmali 和 dex2jar 工具可以在:/tools…
标 题: [原创]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 自我…
背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为android.intent.action.BOOT_COMPLETED.只要在程序中“捕捉”到这个消息,再启动之即可.记住,Android框架说:Don't call me, I'll call you back.我们要做的是做好接收这个消息的准备,而实现的手段就是实现一个BroadcastReceiver. 代码解析: 1.界面Activity:SayHello.jav…
Android Security¶ 确认签名¶ Debug签名: $ jarsigner -verify -certs -verbose bin/TemplateGem.apk sm 2525 Sun Jun 02 23:44:06 CST 2013 assets/XmlPullParser X.509, CN=Android Debug, O=Android, C=US [证书的有效期为 12-10-10 下午9:48 至 42-10-3 下午9:48] ... sm 544036 Sun J…
Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥. #!/usr/bin/env python # -*- coding: utf- -*- import os import sys import zipfile import re import hashlib #MD5和sha1算法 def getAppBaseInfo(apkpath): #print(apkpath) #检查版本号等信息 output = os.popen("aapt.exe d badg…
越来越多的开发者热衷于使用html5+JavaScript开发移动Web App.不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数.一方面,用户在使用习惯上,不喜欢在浏览器上输入复杂的网址:另一方面,Html5 Web App 存放在服务器端,在每次使用时需要进行数据传递,会造成流量浪费.有些开发者不想接触复杂的JAVA代码,那么,有什么办法,既可以使用HTMl5开发应 用,又可以将其简单封装成APK文件呢? 一.Android SDK中的WebView1.…
1.使用Android 天猫apk 进行聊天会产生tmallWangXinDB的数据库.2.用sqlite3 工具打开提示加密或者错误.3.需要对该数据库进行解密. 解密流程:1.反编译apk,dex2jar工具及smali 文件夹中搜索都没有tmallWangXinDB 关键字.2.用IDA打开可疑的名称so,分析发现是个apk. 3.反编译该apk及查找对应的关键字. 4.构造函数有继承SQLiteOpenHelper设置秘钥的函数. 5.SQLiteOpenHelper的包名可以知道采用也…
越来越多的开发者热衷于使用html5+JavaScript开发移动Web App.不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数.一方面,用户在使用习惯上,不喜欢在浏览器上输入复杂的网址:另一方面,Html5 Web App 存放在服务器端,在每次使用时需要进行数据传递,会造成流量浪费.有些开发者不想接触复杂的JAVA代码,那么,有什么办法,既可以使用HTMl5开发应 用,又可以将其简单封装成APK文件呢? 一.Android SDK中的WebView1.…