跳至主要内容

Android病毒分析之《秒抢红包apk》

http://ift.tt/2E6mnxp


病毒信息

大小: 251271 bytes
修改时间: 2016年4月15日, 23:37:26
MD5: 033AE1BA78676130E99ACC8D9F853124
SHA1: B43F731C59FF37602CB9F971F893965EF19C9DEE
CRC32: AAC480FC

恶意行为

  • 修改锁屏画面
  • 修改锁屏密码
  • 监控输入密码尝试次数
  • 开机自启恶意画面
  • 激活设备管理器
  • 对解密进行勒索

病毒执行

首先安装好病毒之后,病毒向用户申请权限

通过图片可以看到,申请的权限有
- 清楚所有数据
- 更改屏幕锁屏密码
- 更改密码
- 检视屏幕解锁尝试次数
- 锁定屏幕

加入用户点击激活之后,就会发生下面的情况

病毒分析

首先看注册文件

通过图片可以发现,这个广播中有一个DEVICE_ADMIN_ENABLED权限,这是服务的类是MyAdmin,这个类被用过很多次了,感觉网上很多病毒代码都是搜索一下拼凑的。。。同时上面还有一个开机自启的权限


进去MyAdmin这个类中,可以发现有又给很明显的onPasswordChanged函数,这个很明显的就可以看到的是密码是8985,经过试验,是可以用这个密码解开重启之后的手机的,并且手动关闭设备管理器之后,是可以把这个程序卸载掉的
但是卸载掉之后发现,重启手机仍旧是可以看到锁的

因此我们需要换个思路,这样可能不行,需要把上面图片描述页面的密码找出来,因为那个界面有监控数据,找起来应该有点麻烦


DU这个类中,发现了DES进行加密解密的函数
当用户点击验证密码的时候,肯定会对保存的加密密码进行解密,然后进行比较,干脆直接在这里加一个日志Log,输出一下解密信息

通过回编译生成之后重新安装,使用adb logcat进行日志过滤

发现密码为00000000 ,输入之后果然进行正常的进行解锁了

总结

这个病毒主要利用的是人的贪欲,如果用户不下载非官网的APP,在app进行权限申请的时候多留个心眼,多想想,可能就不会遭到病毒的攻击

The post Android病毒分析之《秒抢红包apk》 appeared first on cole.

http://ift.tt/2rya7Df android_virus January 24, 2018 at 09:28PM

评论

此博客中的热门博文

反Hook 之自己实现GetProcAddress和LoadLibraryA(c++ version)

http://ift.tt/2AocAD0 // 课上练习.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> //要实现的功能: /* 自己实现GerProcAddress LoadLibraryA */ //思路: /* GerProcAddress和LoadLibraryA都是在Kernel32.dll中的 首要的任务就是找到Kernel32.dll,然后遍历IAT就能找到这两个函数 现在首要的难点就是如何找到kernel32.dll() 通过dll的加载顺序可以找到,而且虽然需要使用未文档化的API,但是好在windgb可以直接看,而且用到的也并不是很多 懒得去晚上搜了,直接自己实现一个得了,作为演示,能用就行(最好还是搜一个正规的结构体) */ /* 0: kd> dt _TEB /a nt!_TEB +0x000 NtTib : _NT_TIB +0x01c EnvironmentPointer : Ptr32 Void +0x020 ClientId : _CLIENT_ID +0x028 ActiveRpcHandle : Ptr32 Void +0x02c ThreadLocalStoragePointer : Ptr32 Void +0x030 ProcessEnvironmentBlock : Ptr32 _PEB //首先实现部分TEB结构体,因为只需要用的PEB的部分,所以实现到这就ok了 */ //构建 TEB typedef struct _TEB { //保证0x30是peb的结构体就ok了 struct _tem { DWORD a1; DWORD a2; DWORD a3; DWORD a4; DWORD a5; DWORD a6; DWORD a7; DWORD a8; DWORD a9; DWORD a10; ...

IDA动态调试ELF中遇到的问题(1)

https://ift.tt/2Gxnf2F 遇到 got SIGCHLD singal(child status has changed)...这种提示 singal fork了子进程 直接点yes,然后继续单步执行,出来提示 pass to application就行了 内存查看 用od习惯了之后,凡事都想右键看一下内存,但是IDA中好像没有那么如意, 目前只是在栈中右键发现有查看hex的选项 动态调试的时候的nop ida保存动态调试的时候修改的数据 方法一:在程序运行的时候保存 The post IDA动态调试ELF中遇到的问题(1) appeared first on cole . https://ift.tt/2q9Qf5g WHATEVER April 05, 2018 at 09:44AM

数据库(MySQL)编程之数据库和表的基本操作

http://ift.tt/2gOXg6X     数据库和表的基本操作 操作前的基本知识 基本 sql语句不区分大小写(关键字建议用大小写),但字符串常量区分大小写 sql语句可单行或多行书写,以; 结尾 关键字不能跨行或简写 可以用空格或者缩进来提高可读性 注释 sql标准 /**/ : 多行注释 "--":单行注释 mysql 标准: "#":单行注释 "COMMENT":为字段或列添加注释 创建和查看数据库 创建数据库 模板 CREATE DATABASE [IF NOT EXISTS ] db_name create_specification: IF NOT EXITSTS : 检查数据库是否存在,如果存在就不创建 creat_specification :创建条件 CHARACTER SET: 制定数据聚采用的字符集 COLLATE :制定数据库字符集的比较方式 DEFAULT :表示默认内容,即使没有制定该项,也有默认的值 # 创建数据库使用字符集为 UTF-8 ,使用规则为 uftf_bin CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE uft8_bin; 一般默认的数据库就是utf8 和utf8_bin的比较方式,因此一般创建数据库的时候都用 CREATE DATABASE db_name mysql> create database testdb; Query OK, 1 row affected (0.02 sec) 查看数据库 命令 SHOW DATABASES     mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sakila | | sys | | testdb | |...