今天我们来用最近比较火的“ChatGPT”学习一下Android病毒分析基础,看看和我们之前学的有什么不同,又能学习到什么新的东西,同时了解一下“ChatGPT”提问的一些精髓。
和我们之前的“Android病毒分析基础(一)”一样,我们先看一下环境搭建、工具使用、在线查杀、病毒分析方法以及特征提取等问题。
以下各项均是“ChatGPT”回答,本人只做了些许删减。
如何便捷的使用ChatGPT
在ChatGPT火了没多久,很多大佬就相继开发出了很多插件,包括了浏览器插件、MAC菜单栏程序、国内镜像接口等便捷的插件。
浏览器插件
项目地址:https://github.com/wong2/chat-gpt-google-extension
支持浏览器:Chrome、Edge、Firefox
支持搜索引擎:Google, Baidu, Bing, DuckDuckGo, Brave, Yahoo, Naver, Yandex, Kagi, Searx
安装:
我们直接选择在chrome应用商店下载:https://chrome.google.com/webstore/detail/chatgpt-for-google/jgjaeacdkonaoafenlfkkkmbaopkbilf
其他浏览器可以直接在github下载对应插件安装即可。
效果:
MAC菜单栏程序
项目地址:https://github.com/vincelwt/chatgpt-mac
支持MAC全系列
安装:我们直接在项目下下载对应的dmg文件安装即可
效果:
以上两个插件都是需要登录自己注册的账号,下面我们来介绍几个国内镜像接口,免登录直接使用。
ChatGPT国内镜像(可能被限制)
1、https://gpt.chatapi.art
2、https://trychatgpt.ssi.plus/
现在国内镜像被访问过多,可能都被限制了,所以最好还是自己注册一个账号,我们只需要找一个接码平台获取对应验证码即可,例如:https://sms-activate.org
接下来,我们进入正题,来看看ChatGPT如何教我们学习Android病毒分析。
环境搭建
-
安装虚拟机软件:需要安装一款虚拟机软件,如 VirtualBox 或 VMware,来运行 Android 系统。
-
下载 Android 系统镜像:可以从 Android 官网或其他网站下载 Android 系统的镜像文件。
-
创建虚拟机:使用虚拟机软件创建一个新的虚拟机,并将 Android 系统的镜像文件设置为启动盘。
-
安装 Android SDK:下载并安装 Android SDK,这是一个用于开发 Android 应用的工具集。
-
安装 Apktool:Apktool 是一款反编译工具,可以将 APK 文件反编译为可读的文本文件,以便进行病毒分析。
-
安装其他工具:根据您的需要,还可以安装其他工具,如 DEX2JAR、JD-GUI 等。
按照本人分析病毒经验,这些环境略显不足,所以我输入“继续”,结果机器人直接来了环境搭建后的分析过程:
-
获取待分析的病毒文件:可以从网络下载或从其他来源获取病毒文件,通常为 APK 格式。
-
反编译 APK 文件:使用 Apktool 将 APK 文件反编译为可读的文本文件。
-
分析反编译后的代码:打开反编译后的文件,查看源代码并分析病毒的行为。
-
运行病毒:在 Android 虚拟机中安装病毒 APK 文件,并观察它的行为。
-
分析病毒的攻击手段:分析病毒使用的漏洞、攻击手段、传播方式等。
-
分析病毒的持久化机制:检查病毒是否在系统启动时自动运行,或者是否安装了后门等。
这个分析过程也是较为简洁,我们“继续”,结果机器人直接开始介绍防范手段:
-
安装杀毒软件:使用专业的杀毒软件,如 McAfee、Norton 等,来查杀病毒。
-
升级操作系统和应用程序:及时升级操作系统和应用程序,以获得最新的安全补丁。
-
使用防火墙:使用防火墙来阻止未经授权的网络连接,并设置安全规则以防止病毒的传播。
-
不打开未知的邮件附件:避免打开未知来源的邮件附件,特别是 EXE、BAT、SCR 等可执行文件。
-
不下载未知的文件:避免从未知来源下载文件,特别是未经检查的 APK 应用程序。
-
使用双因素身份验证:使用双因素身份验证(2FA)来增强账户的安全性。
以上的回答显然不够入门,只是一些基础知识,我们换种方式提问,看看效果。
通过上图可以看出,我们可以对机器人纠错,也可以对某一个点进行深入提问,也可以通过“继续”来了解更多内容。
下面我们让机器人为我们详细列举病毒分析方法和病毒特征提取两个点。
Android病毒分析方法
-
静态分析:分析 APK 文件的二进制代码,可以通过反编译和解析资源文件获取更多信息。
-
动态分析:在设备上运行 APK 文件并监测其行为。可以使用模拟器或真机测试。
-
反汇编:通过反汇编工具分析二进制代码,获取程序的源代码和汇编代码。
-
反编译:通过反编译工具获取程序的高级语言代码(如 Java 代码)。
-
分析资源文件:通过解析 APK 文件中的资源文件,如布局文件、图像文件和字符串资源文件,获取有关程序的信息。
-
手机取证:通过从手机中获取数据来分析病毒行为。
-
分析通信:通过分析程序的网络通信来获取有关其功能和行为的信息。
-
分析存储:通过分析程序在设备上存储的数据,获取有关其功能和行为的信息。
-
分析注册表:通过分析设备的注册表来获取有关病毒的信息。
-
分析权限:通过分析程序请求的权限,了解其功能和行为。
-
分析关联文件:通过分析程序与其他文件之间的关联关系,了解其功能和行为。
-
分析数据流:通过分析程序处理数据的方式,了解其功能和行为。
-
分析代码签名:通过分析代码签名,了解程序的可信度和安全性。
-
分析程序依赖关系:通过分析程序与其他程序之间的依赖关系,了解其功能和行为。
-
分析加密方法:通过分析程序使用的加密方法,了解其功能和行为。
-
分析恶意行为:通过分析程序的恶意行为(如窃取数据、恶意广告、挖矿等),了解其功能和风险。
-
分析隐藏行为:通过分析程序隐藏的行为(如后台运行、注册启动项等),了解其功能和风险。
-
分析恶意代码:通过分析程序中的恶意代码(如木马、蠕虫等),了解其功能和风险。
-
分析关键字:通过分析程序中的关键字(如加密、网络通信、隐藏等),了解其功能和风险。
-
分析病毒特征:通过分析病毒的特征(如文件扩展名、图标、病毒库等),了解其功能和风险。
Android病毒特征提取方法
-
静态特征提取:分析 APK 文件的二进制代码,提取关于病毒的信息,如病毒库、文件扩展名、图标、病毒特征哈希值等。
-
动态特征提取:在设备上运行 APK 文件,监测病毒的行为,提取病毒的动态特征,如网络通信、文件操作、进程操作等。
-
分析资源文件:通过解析 APK 文件中的资源文件,如布局文件、图像文件和字符串资源文件,提取病毒的特征信息。
-
分析注册表:通过分析设备的注册表,提取病毒的特征信息,如启动项、服务、安装信息等。
-
分析权限:通过分析程序请求的权限,提取病毒的特征信息,如需要获取敏感信息、需要运行后台等。
-
分析关联文件:通过分析程序与其他文件之间的关联关系,提取病毒的特征信息。
-
分析数据流:通过分析程序处理数据的方式,提取病毒的特征信息。
-
分析代码签名:通过分析代码签名,提取病毒的特征信息,如签名证书、签名者信息等。
-
分析程序依赖关系:通过分析程序与其他程序之间的依赖关系,提取病毒的特征信息。
-
分析加密方法:通过分析程序使用的加密方法,提取病毒的特征信息,如使用的密钥长度、加密算法等。
-
分析恶意行为:通过分析程序的恶意行为(如窃取数据、恶意广告、挖矿等),提取病毒的特征信息。
-
分析隐藏行为:通过分析程序隐藏的行为(如后台运行、注册启动项等),提取病毒的特征信息。
-
分析恶意代码:通过分析程序中的恶意代码(如木马、蠕虫等),提取病毒的特征信息。
-
分析关键字:通过分析程序中的关键字(如加密、网络通信、隐藏等),提取病毒的特征信息。
-
分析病毒特征:通过分析病毒的特征(如文件扩展名、图标、病毒库等),提取病毒的特征信息。
-
分析病毒签名:通过分析病毒的签名信息(如证书链、签名者信息等),提取病毒的特征信息。
-
分析病毒的网络特征:通过分析病毒的网络行为(如通信协议、连接地址、端口号等),提取病毒的特征信息。
-
分析病毒的文件操作特征:通过分析病毒对文件的操作(如创建、修改、删除等),提取病毒的特征信息。
-
分析病毒的进程操作特征:通过分析病毒对进程的操作(如创建、修改、删除等),提取病毒的特征信息。
-
分析病毒的系统调用特征:通过分析病毒使用的系统调用(如文件操作、网络通信、加密等),提取病毒的特征信息。
-
分析病毒的加解密特征:通过分析病毒使用的加解密方法(如对称加密、非对称加密、哈希算法等),提取病毒的特征信息。
-
分析病毒的库文件特征:通过分析病毒使用的库文件(如加密库、网络通信库、图像处理库等),提取病毒的特征信息。
-
分析病毒的注册表特征:通过分析病毒修改的注册表项(如启动项、服务、安装信息等),提取病毒的特征信息。
-
分析病毒的数据库特征:通过分析病毒修改的数据库(如联系人数据库、短信数据库、通话记录数据库等),提取病毒的特征信息。
-
分析病毒的文件属性特征:通过分析病毒修改的文件属性(如文件名、文件扩展名、文件图标等),提取病毒的特征信息。
-
分析病毒的系统服务特征:通过分析病毒修改的系统服务(如后台服务、自动启动服务等),提取病毒的特征信息。
-
分析病毒的系统属性特征:通过分析病毒修改的系统属性(如系统语言、时区、网络设置等),提取病毒的特征信息。
-
分析病毒的加密文件特征:通过分析病毒加密的文件(如照片、文档、视频等),提取病毒的特征信息。
-
分析病毒的软件更新特征:通过分析病毒更新的软件(如系统软件、应用软件等),提取病毒的特征信息。
-
分析病毒的硬件驱动特征:通过分析病毒安装的硬件驱动(如显卡驱动、声卡驱动等),提取病毒的特征信息。
-
分析病毒的进程伪装特征:通过分析病毒伪装的进程(如使用常见进程名称、修改进程信息等),提取病毒的特征信息。
-
分析病毒的网络通信加密特征:通过分析病毒使用的网络通信加密方式(如 SSL/TLS、SSH 等),提取病毒的特征信息。
-
分析病毒的反调试特征:通过分析病毒使用的反调试技术(如软件断点、硬件断点、调试器检测等),提取病毒的特征信息。
-
分析病毒的网络隐蔽特征:通过分析病毒使用的网络隐蔽技术(如代理、隧道、混淆等),提取病毒的特征信息。
用python写一个Android程序分析工具
总结
可以看到chatGPT在某些问题上给出的答案远超出我们之前总结的内容,提供了不少新的思路,它在语义理解上已经远超过很多AI,我们可以持续提问,在这个过程中我们可以不断纠错,或者针对某个点再详细提问等,他都会结合上下文给出详细的解答,但是,我也试了很多问题,比如一些代码出现问题后,他可能无法纠正,他会给你一个答案,但是答案可能类似于套娃,无限循环,不过这个问题也可能是本人提问方式有问题,导致自己和chatGPT都进了死胡同。
总的来说,chatGPT在很多方面都表现很好,我们完全可以在工作中尝试使用它,可以用来写一些工具,例如我们可以让他写一些VBA来处理批处理excel等,可以快速生成一些文档模版等。
参考文章:https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA