android逆向基础:apk 反编译 重打包 重签名
apk 反编译大家都比较熟悉,这里只做一个笔记。
1 反编译 apk
apktool d perfect.apk
这样就把资源文件解压缩了, classes.dex 也反编译成了 smali 文件
2 修改 smali 文件
得到 smali 文件,现在就可以对 smali 文件进行修改和添加自己的代码了。
当然可以进一步用 dex2jar (或者 enjarify) 处理将 dex 转成 java class 文件, 再用 jd-jui 等反编译成 java 代码。
现在 apk 基本都做了混淆, 但仔细读还是基本能够明白意思的。
修改 smali 是考验你 smali 汇编的基础, 这个就是孰能生巧,多读多练了, 比 arm 汇编要简单多了。
3 重新打包
apktool b perfect
4 重签名
重新打包后没有签名信息, 还需要重新签名,因为 apk 没有签名是不能安装的。
有2种签名方法一是通过 jarsigner , jarsigner 和 keytool 其实都是 jdk 中的工具, 在 java 安装目录下可找到, 本来就是给 jar 文件签名的
jarsigner -verbose -keystore leslie.keystore -storepass -keypass -signedjar perfect-hack-signed.apk perfect-hack.apk lesliekeystore
也可以用默认的 debug key 签名, debug.keystore 一般位于 ~/.android 目录下
jarsigner -verbose -keystore debug.keystore -storepass android -keypass android -signedjar perfect_signed.apk perfect.apk androiddebugkey
如果没有 keystore 可以用 keytool 生成一个
另外一种签名方式是通过 signapk.jar 对 apk 进行签名
java -jar signapk.jar .testkey.x509.pem testkey.pk8 my.apk my_signed.apk
这是基础中的基础了,看着很简单,但自己第一次在 smali 中成功注入一行弹 toast 的代码还是用了一天的时间。
对一个已经签名的 apk 重新进行签名
第一步删除原来的签名文件
zip -d foo.apk META-INF/\*
第二步重新签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore leslie.keystore -storepass 123456 -keypass 123456 -signedjar wing_signed.apk wing.apk lesliekeystore
keystore 文件和 .pem .pk8 是可以相互转化的
最新文章
- web前端的春天 or 噩梦
- XInitThreads与XLIB
- h5调用摄像头
- 我利用网上特效开发的Jquery插件
- 移动端 几个css3属性的练习
- Linux的vim三种模式及命令
- EditText中输入手机号码时,自动添加空格
- 用php完成数据库的增删改查
- python随机数的使用记录
- TI BLE CC2541的SPI主模式
- Java开发中经典的小实例-(if(参数){}else{})
- html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?
- oracle 联表更新
- YII2 随笔 视图最佳实践
- anaconda安装加速镜像问题解决
- C# 引用类型之特例string
- idea免费破解
- python接口自动化测试十八:使用bs4框架爬取图片
- MAC 10.10 开机登录无敌风火轮问题解决方式
- HDUOJ---A + B Again
热门文章
- FlexBox弹性盒布局
- B-spline Curves 学习之B样条曲线的导数(8)
- 如何将图片嵌入到Html中
- 使用Intellij Idea连接Team Foundation Server (TFS)实现代码版本管理
- [Erlang34]erlang.mk的源码阅读1-入门makefile
- JS控制输入框,输入正确的价格
- NETCore 同步AD域组织和用户
- LightOJ 1220 Mysterious Bacteria(唯一分解定理 + 素数筛选)
- 【总结】 BZOJ前100题总结
- 2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践