qq悄悄话查看器-分析报告
来源:互联网 发布:办公软件2003官方下载 编辑:程序博客网 时间:2024/04/29 10:19
今天我的小网站出问题了,只好先写到博客了。
0x00 摘要
前两天有朋友在Q群里发一个QQ悄悄话查看器.apk,因为我之前有研究过,知道查看是不可能的,肯定是骗人的软件(当然了,其实当时我想的是,如果真的可以查看,我要看看他的原理是什么,我断定不可查看是因为:链接)
后来看到有人说,是一款恶搞的软件,很多人中招。
今天周六,看网上也没人分析,就抽时间分析了下。分析后发现……原来没人分析,是因为并没有分析的价值……
0x01软件概述
0x02分析实现下载地址:从网上随便找的,本身就是假软件,应该不会再有假的了。
文件:qqqqhckq.apk
大小:580 KB(594,446 字节)
占用空间:584 KB(598,016 字节)
MD5:b1 3c 0c e0 b9 d8 a5 91 f8 79 b4 9a dd 00 20 7a
包名:com.o(这包名我也是醉了)
签名:(谷歌测试签名?)
所有者:EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=MountainView, ST=California, C=US
发布者:EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=MountainView, ST=California, C=US
序列号:936eacbe07f201df
有效期开始日期: FriFeb 29 09:33:46 CST 2008, 截止日期: Tue Jul 17 09:33:46 CST 2035
证书指纹:
MD5: E8:9B:15:8E:4B:CF:98:8E:BD:09:EB:83:F5:37:8E:87
SHA1: 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
SHA256:A4:0D:A8:0A:59:D1:70:CA:A9:50:CF:15:C1:8C:45:4D:47:A3:9B:26:98:9D:8B:64:0E:CD:74:5B:A7:1B:F5:DC
签名算法名称: SHA1withRSA
版本: 3
1,解包查看manifest
这是程序的入口,有了入口我们才能一步一步往下分析。
1.1我们看到一个e4a,猜想可能是一个类似e语言的吧,搜索后发现http://bbs.e4asoft.com/
1.2启动的StartActivity和mainActivity应该是e4a的,最后启动的是com.o.主窗口
1.3还有一个服务com.o.后台服务操作
<application android:name="com.e4a.runtime.android.E4Aapplication" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="QQ悄悄话查看器" android:persistent="true" android:theme="@style/ClassicTheme"> <activity android:name="com.e4a.runtime.android.StartActivity" android:icon="@drawable/icon" android:label="QQ悄悄话查看器" android:theme="@style/StartTheme"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.DEFAULT"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name="com.e4a.runtime.android.mainActivity" android:configChanges="keyboardHidden|orientation" android:icon="@drawable/icon" android:label="QQ悄悄话查看器" android:launchMode="singleTask" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan"> <meta-data android:name="MainForm" android:value="com.o.主窗口"/> <meta-data android:name="FontSize" android:value="true"/> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <service android:name="com.o.后台服务操作"> <intent-filterandroid:priority="1000"> <actionandroid:name="com.o.后台服务操作"/> </intent-filter> </service></application>
2,查看资源文件
网上说会播放声音的,常见的播放声音有2个地方,assets和raw,在assets中找到:
2.1,6M5UBF2J9ZI70.jpg
打开后显示的图,还有作者的QQ
2.2,0.mp3
播放的不可描述的声音。
2.3,0.wma
3,分析源码
这是包中的代码,R文件就不说了。
3.1 初始任务
这里把4个音量设为100
/* The audio stream for system sounds */ public static final int STREAM_SYSTEM = 1; /* The audio stream for the phone ring and message alerts */ public static final int STREAM_RING = 2; /* The audio stream for music playback */ public static final int STREAM_MUSIC = 3; /* The audio stream for alarms */ public static final int STREAM_ALARM = 4; publicvoid 主窗口$创建完毕() { 音量操作.置音量(4, 100); //设置音量的1234(代码写错这种我就不吐槽了) 音量操作.置音量(4, 100); 音量操作.置音量(2, 100); 音量操作.置音量(3, 100); 媒体操作.播放音乐("0.mp3");//播放音乐,我就想知道0.wma有什么卵用 媒体操作.置循环播放(true); this.标签1.字体大小(10.0F); this.标签1.标题("" + 加密操作.RC4解密("4B9D72700A8217D0","0"));//解密后是“免责声明” this.系统设置1.屏幕锁定(); this.系统设置1.保持屏幕常亮(); this.系统广播1.注册广播("后台服务广播"); this.系统闹钟1.设置闹钟(1, 500L, "闹钟"); this.时钟1.时钟周期(500); }3.2 屏蔽按键
这里屏蔽按键,使按键失效,code对应的音量加、音量减、菜单。
返回键呢?我测试的时候,可以点home键返回桌面,卸载。
/** Key code constant: Volume Up key. * Adjusts the speaker volume up. */ public static final int KEYCODE_VOLUME_UP = 24; /** Key code constant: Volume Down key. * Adjusts the speaker volume down. */ public static final int KEYCODE_VOLUME_DOWN = 25; /** Key code constant: Menu key. */ public static final int KEYCODE_MENU = 82; public void 主窗口$按下某键(int paramInt, BooleanReferenceParameter paramBooleanReferenceParameter) { boolean bool = paramBooleanReferenceParameter.get(); if (paramInt == 24) bool = true; if (paramInt == 25) bool = true; if (paramInt == 82) bool = true; paramBooleanReferenceParameter.set(bool); }3.3 时钟周期
publicvoid 时钟2$周期事件() { this.时钟1.时钟周期(0); 系统相关类.创建快捷方式2("QQ悄悄话查看器0", 2130837504, "http://"); 系统相关类.创建快捷方式2("QQ悄悄话查看器1", 2130837504, "http://"); 系统相关类.创建快捷方式2("快手双击工具2", 2130837504, "http://"); 系统相关类.创建快捷方式2("快手双击工具3", 2130837504, "http://"); 系统相关类.创建快捷方式2("QQ悄悄话查看器4", 2130837504, "http://"); }3.4标签点击事件
//解密后是“免责声明”//“仅供整蛊娱乐,凡是使用本程序必须承担后果,请勿修改应用程序否则后果自负!”//“我同意” public void 标签1$被单击() { 对话框类.信息框("" + 加密操作.RC4解密("4B9D72700A8217D0", "0"), "" + 加密操作.RC4解密("35891F2916806DE1E71622A2DDD1EC7040CC953D96DFBA0145EE0E1F177C902D5CFDD9F787E0B14554D9103F81B7ECDA9E8BE63EA8CFF797820796B2DF4C1BE9856BA4659E76", "0"), "" + 加密操作.RC4解密("46AD6B2C1199", "0")); }3.5广播
publicvoid 系统广播1$收到广播(int paramInt) { 主窗口.标题(this.系统广播1.取广播内容()); if (主窗口.标题().equals("1")) { if (!应用操作.是否在前台()) { 音量操作.置音量(4, 100); 音量操作.置音量(1, 100); 音量操作.置音量(2, 100); 音量操作.置音量(3, 100); 应用操作.返回应用(); this.系统设置1.屏幕解锁(); } } else return; this.标签1.字体大小(10.0F); }
0x03 修改测试
0x04总结为什么不直接测试,而要先分析呢?你以为我傻呀,当然要先研究透才能测试呀。O(∩_∩)O~
1,修改音乐文件
1.1我直接替换assets中的0.mp3,重签名安装后,发现音乐不能播放了。
排除签名认证,软件是可以打开的。
排除音乐文件认证,代码总共才那几行。
最后看log,
Token{42656530 ActivityRecord{427b6448com.o/com.e4a.runtime.android.mainActivity}} failed creating starting window android.view.InflateException:Binary XML file line #34: Error inflating class <unknown>好像没有跟播放声音有关的呀……
哈哈,我想可能是e4a不能这样改,
于是用ApkIDE编译。
1.2 ApkIDE报了一个
libpng error: Not a PNG fileERROR: Failure processing PNG imageE:\xxunpack\ApkIDE\Work\com.o\res\drawable\icon.png于是换了一张png的
成功,打开软件终于唱起了葫芦娃,终于不是不可描述啦。
2,去除屏蔽按键
.method public 主窗口$按下某键(ILcom/e4a/runtime/parameters/BooleanReferenceParameter;)V .registers 5 invoke-virtual {p2},Lcom/e4a/runtime/parameters/BooleanReferenceParameter;->get()Z move-result v0 const/16 v1, 0x18 if-ne p1, v1, :cond_9 const/4 v0, 0x1 :cond_9 const/16 v1, 0x19 if-ne p1, v1, :cond_e const/4 v0, 0x1 :cond_e const/16 v1, 0x52 if-ne p1, v1, :cond_13 const/4 v0, 0x1 :cond_13 invoke-virtual {p2, v0}, Lcom/e4a/runtime/parameters/BooleanReferenceParameter;->set(Z)V return-void.end method改最后的返回就可以了
:cond_13 const/4 v0, 0x0 invoke-virtual {p2, v0},Lcom/e4a/runtime/parameters/BooleanReferenceParameter;->set(Z)V return-void
正如前面所说的,并没有分析的价值
1,今早想从群里下载时,也经无法下载了
2,安装时,某流氓也会提示该软件有问题了
- qq悄悄话查看器-分析报告
- 关于今天火爆各大高校的“QQ悄悄话查看器”
- 悄悄话
- 黑客版QQ登陆器.Exe病毒分析报告
- QQ历史签名查看器
- 分析:为什么McAfee报告QQ程序是病毒
- 悄悄话游戏
- [BZOJ2145]悄悄话
- 2145: 悄悄话
- QQ聊天记录查看器 5.3破解
- QQ聊天记录查看器 5.3 华军版
- 广外专版-QQ聊天记录查看器
- ImageView(仿QQ图片查看器)
- 类似qq的图片查看器
- QQ聊天记录查看器的编写
- QQ大盗病毒传播技术分析报告及防范(图)
- 查看别人QQ聊天记录
- 查看QQ本地密码
- viewanno.m
- 线性表
- Valid Parentheses 判断括号是否合法
- 聊聊深度学习这档子事(2):最小二乘法
- SQL简单查询
- qq悄悄话查看器-分析报告
- Java 数据结构
- Windows下搭建React Native Android开发环境
- UIWebView设置agent
- (思路篇)姿态算解
- Android仿简书、淘宝等APP View弹出效果
- Collection架构源码分析(基于1.8)
- ios学习路线—iOS高级(SDWebImage)
- opencv 鼠标响应