程序员跑路了,李老板要求把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 讨论下。

相关推荐
jiet_h2 小时前
Android Kotlin 算法详解:链表相关
android·算法·kotlin
@老蝴4 小时前
C语言 — 动态内存管理
android·c语言·开发语言
每次的天空5 小时前
Android第十一次面试flutter篇
android·flutter·面试
renxhui7 小时前
Android 性能优化(四):卡顿优化
android·性能优化
二流小码农7 小时前
鸿蒙开发:UI界面分析利器ArkUI Inspector
android·ios·harmonyos
CYRUS_STUDIO8 小时前
FART 精准脱壳:通过配置文件控制脱壳节奏与范围
android·安全·逆向
小疯仔8 小时前
使用el-input数字校验,输入汉字之后校验取消不掉
android·开发语言·javascript
墨狂之逸才8 小时前
Data Binding Conversion 详解
android
iceBin9 小时前
uniapp打包安卓App热更新,及提示下载安装
android·前端
杨充9 小时前
高性能图片优化方案
android