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 是可以相互转化的

最新文章

  1. web前端的春天 or 噩梦
  2. XInitThreads与XLIB
  3. h5调用摄像头
  4. 我利用网上特效开发的Jquery插件
  5. 移动端 几个css3属性的练习
  6. Linux的vim三种模式及命令
  7. EditText中输入手机号码时,自动添加空格
  8. 用php完成数据库的增删改查
  9. python随机数的使用记录
  10. TI BLE CC2541的SPI主模式
  11. Java开发中经典的小实例-(if(参数){}else{})
  12. html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?
  13. oracle 联表更新
  14. YII2 随笔 视图最佳实践
  15. anaconda安装加速镜像问题解决
  16. C# 引用类型之特例string
  17. idea免费破解
  18. python接口自动化测试十八:使用bs4框架爬取图片
  19. MAC 10.10 开机登录无敌风火轮问题解决方式
  20. HDUOJ---A + B Again

热门文章

  1. FlexBox弹性盒布局
  2. B-spline Curves 学习之B样条曲线的导数(8)
  3. 如何将图片嵌入到Html中
  4. 使用Intellij Idea连接Team Foundation Server (TFS)实现代码版本管理
  5. [Erlang34]erlang.mk的源码阅读1-入门makefile
  6. JS控制输入框,输入正确的价格
  7. NETCore 同步AD域组织和用户
  8. LightOJ 1220 Mysterious Bacteria(唯一分解定理 + 素数筛选)
  9. 【总结】 BZOJ前100题总结
  10. 2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践