程序员跑路了,李老板要求把App换个图标和名称

一、目标

李老板:奋飞呀,给咱们开发Android App的程序员删库跑路了,明天投资人就要过来,咱们得把App换个图标和名字呀?

奋飞:这个得先把五一的加班费结一下。

二、步骤

拆包

Android App的安装包Apk文件本质上是一个zip压缩包,直接把后缀改成zip,就可以解压,然后修改完再压缩回去不就行了? 本文完......

现实是没有那么简单的,作为逆向工程师,必须要把 简单的事情复杂化,这样才能体现你的价值。

解压在我们这里不叫解压,叫拆开安装包,简称 拆包。是不是立马高大上了。

因为Apk的安装包有一些特殊处理,所以我们需要用特殊的工具去拆包 apktool

bash 复制代码
# d 拆包
# f 待拆包的apk
# o 输出拆包结果的文件夹
apktool d -f example.apk -o tmp_apk_dir

修改文件

App的名字等字符串信息一般都是放在

.../tmp_apk_dir/res/values/strings.xml

这个xml文件里面

把 <string name="app_name">xx本子</string>

改成 <string name="app_name">李老板本子</string>

App的图标一般都是放在

tmp_apk_dir/res/mipmap-xhdpi/icon.png

其他的mipmap-xxx文件夹是不同分辨率下的图标,可以统统给他换了。

打包,签名

修改好了之后就可以用 apktool重新打包了

bash 复制代码
apktool b tmp_apk_dir -o unsigned_new.apk

签名文件是为了证明这个apk是你的,防止被别人篡改,所以咱们修改了apk之后,由于没有原始的签名文件,只能生成一个新的。

bash 复制代码
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mykey

参数解释:

-keystore my-release-key.jks:生成的签名文件名。

-keyalg RSA:加密算法。

-keysize 2048:密钥长度。

-validity 10000:证书有效期(单位:天)。

-alias mykey:密钥别名,可自定义。

最后一步就是给重新打包的apk做签名了

bash 复制代码
apksigner sign --ks my-release-key.jks --ks-pass pass:fenfei --ks-key-alias mykey --out your_app_new.apk unsigned_new.apk

💡 TIP

apksigner一般在你安装的android SDK里面 /Users/xxx/Library/Android/sdk/build-tools/34.0.0/apksigner

看上去没啥问题,不过我们细心的码农还是会启动验证一下,看看有没有问题。

坏蛋,果然给我们埋坑了。

过坑

跑路的程序员还是厚道,明明白白告诉咱们是由于签名被篡改了。

上jadx,搜索 签名被篡改

需要把这个 if判断干掉

问了一下AI,把对应的 Smail 代码中对应的 if-nez p1 改成 if-eqz p1 就行了

TIP:

| if-nez p1 | 如果 p1 != 0,则跳转(非零成立) |

| if-eqz p1 | 如果 p1 == 0,则跳转(零成立) |

真的没必要去学Smail语法了,现成的AI在嗷嗷待哺

三、总结

由于apk修改起来太容易了,所以程序员gg们会在里面埋更多的坑。加壳 反调试 混淆 前面还有无数困难等着你。

李老板决定还是招个程序员鼓励师比较靠谱。

非真空不宜谈禅,非真旷不宜饮酒。

💡 TIP

本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。

相关推荐
三少爷的鞋31 分钟前
为什么我不在 Android ViewModel 中直接处理异常?
android
草莓熊Lotso2 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
恋猫de小郭2 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
工程师老罗8 小时前
如何在Android工程中配置NDK版本
android
Libraeking11 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位12 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
JMchen12314 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs14 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob14 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔14 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像