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

公众号: 奋飞安全
• 阅读 53

一、目标

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

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

二、步骤

拆包

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

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

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

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

# 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重新打包了

apktool b tmp_apk_dir -o unsigned_new.apk

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

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做签名了

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

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

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

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

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

过坑

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

上jadx,搜索 签名被篡改

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

需要把这个 if判断干掉

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

TIP:

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

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

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

三、总结

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

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

程序员跑路了,李老板要求把App换个图标和名称 非真空不宜谈禅,非真旷不宜饮酒。

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

点赞
收藏
评论区
推荐文章
小程序逆向分析 (一)
一、目标李老板:奋飞呀,最近耍小程序的比较多,而且貌似js好耍一点?要不咱们也试试?奋飞:你是老板,你说了算喽。第一次搞小程序,得找个软柿子捏,就找个以前分析过的某段子App的小程序吧。反编译静态分析动态调试二、步骤春天在哪里?app下载回来就是apk包,那么小程序在哪里?小程序是一个以wxapkg为后缀的文件,在android手机的/da
Trace大盘点
一、目标李老板:奋飞呀,最近老听别人说Trace一下,啥是Trace呀?奋飞:老板,先把上次的加班费结算一下。Trace就是在更高抽象层次上去追踪程序的运行流程。二、JNITracejnitrace在Android下混饭吃,首推的就是jnitrace老牌,经典,信息全,携带方便jnitracellibnativelib.socom.example
某A系电商App doCommandNative浅析
一、目标李老板:奋飞呀,xsign你都水了好几篇了,一直在Apk里面打转,咱们啥时候分析分析它的so?奋飞:循序渐进嘛,我们上次刚定位了它的so,今天我们来分析分析。App版本:v4.15.1二、步骤Native层的入口先回忆下这个堆栈这个jni函数有两个参数,第一个参数是int型,第二个参数是Object数组我们先上frida看看它是不是我们的目
不能Hook的人生不值得 jsHook和模拟执行
一、目标李老板:奋飞呀,上次分析的那个App光能Debug还不够呀,网页中的js也用不了Frida,我还想Hook它的函数,咋搞呀?再有App可以RPC去执行签名,这个js我如何去利用呀?总不能代码都改成js去做请求吧?奋飞:老板呀,你一下提这么多要求,不是明摆着要我们加班吗?这次加班费可得加倍。二、步骤最简单易行的jsHookcon
某电商App sign签名算法解析(五)
一、目标李老板:奋飞呀,据说某电商App升级了,搞出了一个64位的sign。更牛的是入参都加密了!奋飞:这么拉风,拉出来咱们盘盘。v10.3.2二、步骤32位和64位我们掌握了那么多方法,先搜字符串呢?还是先Hook呢?子曾经曰过:看到32位签名就要想起MD5和HmacSHA1,看到64位签名就要想起HmacSHA256。那就先搞搞java的密码学相关
手把手教你在夜神、雷电上搭frida+Xposed
一、目标李老板:奋飞呀,你天天手把手教这样不好吧?奋飞:老板你想多了,就咱们行业这种男女比例,有啥不好的?二、步骤夜神Frida先adb连上夜神,看看它是嘛系统fenfeiMac:Desktopff$adbconnect127.0.0.1:62001alreadyconnectedto127.0.0.1:62001fenfeiMac:D
手把手教你从Apk中取出算法
一、目标李老板:奋飞呀,我最近从Apk里面跟踪到一个算法,代码清晰,但是我不会java,把他翻译成python貌似挺费劲的,有没有轻松省力的方法呀?奋飞:有的呀,给我加工资,我来翻译。某电商Appv10.4.5,升级之后老有小伙伴说他的sign算法变了,其实他就是做了点小动作。sign参数没有动,uuid是明文去做签名,但是抓包请求里面找不到明文uu
在Frida里面做http请求: 聊聊jar to dex
一、目标李老板:奋飞呀,你hook这个App之后拿到token,然后上报给我的服务器好不好?奋飞:木问题。二、步骤gumjshttp在frida里面做http请求,最根正苗红的必须是gumjshttp,大胡子出品,有保障可惜的是我没有搞明白,李老板催的紧,木有时间去慢慢研究了。先搞个Server测试子曾经曰过:人生苦短,快用Python。不过
某小说App返回数据 解密分析
一、目标李老板:奋飞呀,最近被隔离在小区里,没啥可干的呀。奋飞:看小说呀,量大管饱。我们今天的目标就是某小说Appv20210953二、步骤搜索url字符串App请求小说内容的时候没有加签名,但是返回的数据是加密的。那么我们先去jadx搜索一下这个url(novelcontent),看看有没有发现。结果是没有收获。那么很有可能这个url不是在apk中写
某音乐App 抓包和signature签名分析
一、目标李老板:奋飞呀,最近我想下个歌,现在听歌软件都这么顽固了,包都抓不到?奋飞:抓不到包的原因太多了,咱们得用排除法分析下。某音乐App10.8.4二、步骤排查协议李老板也跟我们混了这么多期,所以基本排除抓包环境的问题。那么另一个可能就是像某手使用的quic协议或者某鱼使用的spdy协议了。上jadx搜一下"quic",如果搜不到还可
公众号:  奋飞安全
公众号: 奋飞安全
Lv1
奋飞,国家高级信息系统项目管理师,独立安全研究员。 http://91fans.com.cn/
文章
63
粉丝
4
获赞
44