目录
1.样本概况
1.1 样本信息
名称:958b1e341c72dbcf52863c570b77c71a862987b1
MD5值:8123ac1150b47ef53507ec2360164e3b
SHA1值:958b1e341c72dbcf52863c570b77c71a862987b1
CRC32:4381bb7e
运行后主界面如图所示:
1.2 测试环境及工具
Nexus5 + IDA pro
1.3 分析目标
病毒行为分析
2.具体分析
2.1 加固情况
2.2代码分析片段
直接对样本进行调试,如下图所示:
最后跟进之后发现是exit函数,这是因为检测到了程序被附加,所以会调用exit函数,其实这个反调试会调用fopen和fgets这两个函数进行读取内存信息,因此在libc.so中找到这两个函数进行下断,然后运行到断点出处,然后将获取到被调试程序的名称,经过修改内核,TracerPid为0,表示没有被检测到,如下图所示:
因为要解析dex文件,所以会调用dvmDexFileOpenPartial函数,所以直接在libdvm模块中找到该函数,然后下断,然后运行,如下图所示:
接下来便可以对dex进行内存dump了
static main(void) { auto fp, begin, end, dexbyte; fp = fopen("d:\\dumpali.dex", "wb"); begin = 0x755F36AC; end = begin + 0x6FD00; for ( dexbyte = begin; dexbyte < end; dexbyte ++ ) fputc(Byte(dexbyte), fp); } |
然后使用apktool进行重打包,直接替换会提示错误,
解决办法:使用010editor打开发现是exif文件格式,修该bohe.png为exif,再进行重打包,然后再将dump的文件替换傀儡dex文件即可。
查壳结果如下:
然后再对病毒行为进行分析,其中涉及到的权限如下:
android.permission.INTERNET android.permission.ACCESS_NETWORK_STATE android.permission.READ_PHONE_STATE android.permission.ACCESS_WIFI_STATE android.permission.WAKE_LOCK android.permission.RESTART_PACKAGES android.permission.SYSTEM_ALERT_WINDOW android.permission.GET_TASKS android.permission.SEND_SMS android.permission.SYSTEM_ALERT_WINDOW android.permission.BIND_DEVICE_ADMIN android.permission.RECEIVE_BOOT_COMPLETED |
首先从OnCreate进行代码静态分析,其中对屏幕进行了锁定,同时监听屏幕点击事件,同时会如下图所示:
在监听函数中可以很明显的发现密码为:“薄荷终究是心凉”,如下图所示:
根据分析解决办法为,首先需要删除/data/system/password.key文件,进入到密码输入模式,然后输入密码,再双击密码框,进行两次解锁,然后卸载。
3.总结
经过不断的调试和分析,从该样本中掌握了相关的调试方法,和调试技巧,但这只是开始,分析能力还需不断提高。