一份礼物.apk-O泡果奶的逆向分析

事情起因是震惊全国大学生的1013事件!!!
一份礼物.apk-O泡果奶的逆向分析文章插图
刚好看到社团群里在讨论这个 , 于是就发挥专业特长分析一下
一份礼物.apk-O泡果奶的逆向分析文章插图
拿到apk ,第一步肯定先放到虚拟机里跑一下看下效果
emmm这似曾相识的页面,这熟悉的音量,唯一变化的就是音乐变成了O泡果奶的魔性洗脑广告 。
懂了,这不就是 "送给最好的ta.apk" 吗?
一份礼物.apk-O泡果奶的逆向分析文章插图
使用Android killer或apk改之理分析一下,这里使用Android Killer:
一份礼物.apk-O泡果奶的逆向分析文章插图
一份礼物.apk-O泡果奶的逆向分析文章插图
通过对比送给最好的ta.apk发现:
多了一个layout.lua文件 , 不过从名字上看这就是个布局文件 , 影响不大 , 再就是mp3文件名字从原来的0.mp3改为了mc.mp3 , 其他的都没变 , 甚至软件图标都没变 。 这个mc.mp3就是播放的广告音频了 。
一份礼物.apk-O泡果奶的逆向分析文章插图
剩下的就简单了,虽然lua文件是加密过的,通过分析java代码,发现加密方式也没变,依旧使用/lib/armeabli-v7a/libluajava.so加密,因此使用ida7.0(x32)对这个文件逆向分析:
一份礼物.apk-O泡果奶的逆向分析文章插图
查找到在luaL.loadbufferx里面有对文件解密的过程
这里直接拿pcat大佬写的解密脚本:
【一份礼物.apk-O泡果奶的逆向分析】from ctypes import *import sysdef decrypt(filename):s = open(filename, 'rb').read()outfile = 'out.lua'if s[0] == chr(0x1b) and s[1] != chr(0x4c):rst = chr(0x1b)size = len(s)v10 = 0for i in range(1, size):v10 += sizev = (c_ulonglong(-2139062143 * v10).value >> 32) + v10v1 = c_uint(v).value >> 7v2 = c_int(v).value < 0rst += chr(ord(s[i]) ^ (v10 + v1 + v2)--tt-darkmode-color: #888888;">文章来源:齐鲁师院网络安全社团