感谢ssgemail在[url=http://www.iteye.com/topic/1112018]http://www.iteye.com/topic/1112018[/url]中提供的方法

涉及内容

apk反编译
代码修改
打包
重启签名

需要的工具
jdk:必须的
baksmali:classes.dex反编译为smali格式(文本文件,可修改)
smali:smali格式编译打包为classes.dex
但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助
dex2jar:classes.dex转为jar包
jdgui:jar反编译并阅读

以上工具可以在 http://liye111111.ys168.com/ 下载

好了,顺序就是把apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。注意安装时要先删除原来手机里的版本,因为签名不同了,我第一次再这里卡了好久。

以“捕鱼达人海底捞”为例
下载这个游戏的apk,fishing_joy_1.apk,和工具放在一起

[img]http://dl.iteye.com/upload/attachment/514175/2486ad61-1e89-34f1-9769-fbe6a3cbe18f.jpg[/img]

用zip解开fishing_joy_1.apk
copy classes.dex到baksmali的同一目录

[img]http://dl.iteye.com/upload/attachment/514177/544e9a0e-362d-30f8-a497-8589e29c5e7e.jpg[/img]

用baksmali处理为smali
java -jar baksmali-1.2.6.jar -x classes.dex
得到out目录,里面是smali文件

用dex2jar处理classes.dex为jar包
dex2jar-0.0.7.10-SNAPSHOT\dex2jar.bat classes.dex
得到classes.dex.dex2jar.jar
这时我们的工作目录下面是这样

[img]http://dl.iteye.com/upload/attachment/514181/32d50f2b-7096-38a1-9a0c-5365e6121360.jpg[/img]

用jdgui打开classes.dex.dex2jar.jar
[img]http://dl.iteye.com/upload/attachment/514183/57365dd2-7e71-3e81-8af1-b57f35fe9464.jpg[/img]

好了,可以看代码,但还不能直接修改,需要对比着来修改smali文件

比如我们通过对比找到控制鱼被打到几率的代码在FishLayer.smali

    invoke-static {v4, v5}, Lcom/sg/android/fish/fish/FishFactory;->getProb(II)D

    move-result-wide v4

    invoke-static {}, Ljava/lang/Math;->random()D

    move-result-wide v6

    const-wide/high16 v8, 0x4059

最后的0x4059会与random相乘,如果比getProb方法计算的结果小,判断为鱼可以打下来
改为0x0,每条鱼都是必中 :D

改好后,用java -jar smali-1.2.6.jar -o classes.dex out
得到修改后的classes.dex,用这个文件替换fishing_joy_1.apk中的同名文件
但这个apk是不能用的,还没有进行重新签名

先用keytool生成keystore
keytool -genkey -keystore mykeystore -alias mykeystore -validity 999
把apk中的META-INF删除,再用jarsigner 签名
jarsigner -verbose -keystore mykeystore -signedjar fishing_joy_1_signed.apk fishing_joy_1.apk mykeystore

先卸载原来手机中安装的这个游戏,再用fishing_joy_1_signed.apk安装

最后工作目录是这个样子

[img]http://dl.iteye.com/upload/attachment/514187/69f96d14-1cdd-3e1f-b890-6f23839ca999.jpg[/img]

android捕鱼达人修改方法(反编译、修改、打包)相关推荐

  1. 反编译android 状态栏沉浸,教程:反编译修改实现状态栏时间居左,去除锁屏运营商...

    本帖最后由 Gleam 于 2017-7-30 21:15 编辑 重要的事情说三遍: 操作不当会有风险,如不能开机,systemui无限错误等,修改之前确定是否备份system分区. 操作不当会有风险 ...

  2. mt管理器修改域名对接apk壳修改方法反编译白菜视频教程

    下载地址: https://www.yuenos.cc/2514.htmlhttps://www.yuenos.cc/2514.html

  3. Android TV下LeanbackLauncher的反编译,AS重新打包修改

    本文介绍Android 7.1平台下Google LeanbakLauncher的反编译流程,并使用AS工具重新打包修改. 最近需要开发一款TV桌面应用,调研了各类桌面,如当贝桌面,小米桌面,开源的猫 ...

  4. Unity 安卓 apk 反编译 重新打包 签名修改

    拿到一个Unity 打包出来的apk,如果没有加密的话 ,你是可以通过反编译修改其中的属性的. 步骤一   apk 解压 方法1: apk 变成 .zip 并解压 然后修改 \assets\bin\D ...

  5. apk反编译修改源代码_单击即可将APK反编译为源代码

    apk反编译修改源代码 In this tutorial I will guide you how to decompile apk to source code in just one click. ...

  6. Android APK破解、反编译、打包签名基本思路与方法

    Android APK破解.反编译.打包签名基本思路与方法 2013年6月1日星期六                                                           ...

  7. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ...

  8. .net dll 反编译修改IL再编译,修改版本号

    记一次.net dll 反编译修改IL再编译exe 可用Everything搜索ildasm.exe 在用ildasm.exe打开dll或exe 点击文件右键转储 转储之后用visua studio ...

  9. ueditor 编辑html文件名,UEditor编辑器自定义上传图片或文件路径的修改方法,ueditor修改方法...

    UEditor编辑器自定义上传图片或文件路径的修改方法,ueditor修改方法 使用ueditor编辑器,附件默认在ueditor/php/upload/,  我的附件地址是网站根目录下/data/u ...

  10. android 混淆 去掉log,Android去掉/混淆Log,反编译都看不到

    原标题:Android去掉/混淆Log,反编译都看不到 出发点: 当然是由于编程习惯太好,打了一堆中文log,其实只是想给测试看.然而如果包被反编译,看log基本都能理解流程了,有点尴尬.所以此文主要 ...

最新文章

  1. java B2B2C 源码 Springcloud多租户电子商城系统- Stream重新入队(RabbitMQ)
  2. framebuffer结构体分析
  3. SVM训练时候样本不均衡怎么设置惩罚项
  4. 30 个 Pandas技巧,加速你的数据分析处理速度!
  5. LeetCode 464. 我能赢吗(状态压缩+记忆化递归 / 博弈)
  6. 为什么要始终启用编译器警告?
  7. python range倒序_Python算法学习之堆和堆排序
  8. Leetcode—5.n sum 问题python解答
  9. 什么是句柄?为什么会有句柄?HANDLE
  10. windows Git Gui 汉化
  11. 微信公众平台接口调试工具json格式不对怎么搞_微信支付、支付宝最全接入指引,看完立刻就可以上手!...
  12. php sphinx配置,sphinx的配置和管理
  13. 手机APP从服务器获取列表和详情
  14. AKM 48450-1 230B 24B 40mA
  15. android照片涂抹功能,android照片涂画功能实现过程及原理
  16. idea 导入别人的项目后,显示包的名称错误does not correspond to the file path
  17. 【Java案例】用户登录注册
  18. 写入CSV文件时乱码与格式问题
  19. 【题解】LuoGu1133:教主的花园
  20. 进制转换与位运算的运用

热门文章

  1. Vue开发微信小程序
  2. 使用arcgis查询附近的景点名称
  3. Love ya 三三小说 炫舞爱情 ⑦
  4. 关于 QQ泫舞刷点卷软件
  5. 树莓派实现USB TTL串口通信
  6. linux驱动绑定设备 命令 bind,linux gadget 驱动
  7. untiy3D 学习笔记
  8. android高级设置下载,MIUI高级设置
  9. python自动回复微信群的消息_程序员用python实现微信消息群发和微信自动回复
  10. 莱茵特机器人奖金制度_德国莱茵TUV发布《工业机器人和网络安全白皮书》