SmaliViewer是一款功能强大的apk分析软件,这款软件可以对apk文件的源代码进行分析,还能对apk文件进行逆向。软件可以采用多种方法来对疑似样本进行筛选判定,如证书信息,敏感SP号码信息,Android Manifest的权限信息,函数流程图(CFG),字串表,资源文件信息,敏感行为信息,动态行为等等综合进行判定。
运行环境:
需装java 1.7及以上版本。
安装方法:
下载SmaliViewer.Zip包,解压在指定安装目录打开SmaliViewer文件夹。
启动方法:
windows系统下点击SmaliViewer.bat运行程序;Linux下点击SmaliViewer.sh运行程序。第一次运行程序,需同意《用户使用协议》。
3.1 界面工作区
工作区被划分为四个区域,看到下面的图片:
1- 菜单和工具栏。
2- 主工作区。
3- 操作日志和状态显示区。
4- 类结构显示区。
5- 成员列表显示区
3.2 载入apk
SV的核心目的在于使APK分析更加简便,因此在使用方法上,也格外便捷:载入APK的方式主要有三种:
1- 通过File菜单的Open按钮,然后选择需要打开的apk 2- 直接将需要分析的apk拖入指定区域 3- 通过历史路径直接打开,
载入成功后,可以通过菜单和工具栏,选择需要查看的工作窗口。
3.3 工作区
工作区通过View菜单以及快捷功能菜单的操作,可以打开以下8种工作窗口,通过这8种工作窗口,向您展示SV对APK的包含深度和广度的分析结果:
工作窗口 | 功能描述 |
---|---|
Smali | 可以查看到经过SV反汇编的.dex格式文件的Smali代码信息。 |
Graph | 可以查看到用箭头表示的函数调用关系信息图。 |
AndroidManifest | 可以查看APK文件反编译后的AndroidManifest文件信息 |
String | 可以查看Dex中反编译的代码中的字符串信息,并且采用正则表达式,获取URL信息 |
Resources String | 可以查看resource.asrc文件反编译的资源文件信息。 |
Certification | 可以查看Apk的证书文件信息 |
Zip View | 可以查看压缩包内的文件信息 |
Note | 可以记录自己的分析信息 |
Comsearch | 可以对smali代码内进行全局搜索 |
1- 快捷功能键,可以快速打开String工作区,Resources String工作区和Zip View工作区。 2- Tab目录,显示已打开的Tab,并可以通过双击或者点击关闭图标来关闭Tab。 3- 其他Tab可在菜单栏里的View中打开。
3.4 常用功能
Search功能: 在使用SV查看代码时,可以通过打开Search功能,快速找到自己需要的代码位置。使用Search时分为Comsearch全局查找和Search当前页面查找。可以在Options中打开,或者使用快捷键。
Comment功能: 在Smali Tab窗口下,为代码添加注释,鼠标所在位置,点击右键,便可以打开菜单,选择Comment功能,添加注释 Current查看功能: 在smali Tab窗口下,鼠标移动到指定行,点击右键,可以查看当前所在行代码的class 、Function、line、field信息
跳转功能: 在Manifest Tab窗口下,将鼠标移动到带有下划线的代码内容,双击左键,可以跳转到Smali Tab窗口下的相应代码内容。
Vt联网分析查看: 通过互联网连接到virustotal,进行在线APK分析,点击快捷功能图标启动联网分析功能
4 其他特色功能
4.1 查看引用关系
在类结构的显示区的成员列表显示区,选择一个方法或者变量,查看右键菜单选择ref to,便可查看该方法的引用关系,同时引用关系窗口的上方列表双击可以实现跳转。
4.2 Graph图
在选中成员列表的方法后,打开View中的Graph,可以查看方法内代码的跳转视图 1- 预览视图,拖动蓝色方框,可以变化主工作区的显示内容
4.3 保存DEX2jar
在Options目录下选择保存dex2jar按钮,可以将apk中的.dex文件另存为.jar格式,保存在原APK文件目录下,然后可是使用dex2jar_gui等其他软件打开,查看java代码。
5 Config设置
在菜单栏Options目录下打开Config,设置的内容包括功能显示风格,和界面显示风格两种,在Functions窗口下可以显示代码的格式,点击OK确认选择。 View窗口下,可以开启夜间模式,语言模式,还有显示窗口的字体大小,以及窗口风格,点击OK确认选择。