ApplicationInspector:软件源代码分析和审核工具,识别目标应用程序中的功能,了解目标应用程序的基本特征和实现。
摘要:ApplicationInspector是功能强大的软件源代码分析和审核工具。它可以帮助研究人员识别和发现目标应用程序中的公共功能以及源代码中有趣的功能,并了解目标应用程序的基本特征和实现。
ApplicationInspector是功能强大的软件源代码分析和审核工具。它可以帮助研究人员识别和发现目标应用程序中的公共功能以及源代码中有趣的功能,并了解目标应用程序的基本特征和实现。
ApplicationInspector与传统的静态分析工具的不同之处在于,它不尝试识别目标应用程序模式的优缺点,仅报告其检测到的应用程序模式,并且使用400多个规则来完成检测,其中包含可能影响应用程序安全性的模式,例如使用的加密算法等。ApplicationInspector将直接检查目标应用程序的源代码,而不是选择信任现有文档或安全建议,这可以提高分析开源项目或其他组件的准确性。
ApplicationInspector支持扫描各种编程语言,包括C,C++,Java,JavaScript,HTML,Python,Objective-C,GO,Ruby和PowerShell等。它还支持扫描混合语言文件。此外,ApplicationInspector还支持HTML,JSON和文本等输出格式。默认输出报告格式为HTML。
值得一提的是,ApplicationInspector提供了一个可过滤的指示器,以提供最小的误报率,并帮助研究人员自定义默认规则和条件匹配逻辑。
ApplicationInspector的功能如下所示:
工具下载
研究人员可以使用以下命令在本地克隆项目源代码:
git clone https://github.com/microsoft/ApplicationInspector.git
项目建设
项目的源代码需要与.NET Core 3.0一起安装,并使用标准dotnet构建命令直接在项目根目录中运行。
框架依赖性:
dotnet build -c Release
目标平台建设:
dotnet publish -c Release -r win-x86
dotnet publish -c Release -r linux-x64
dotnet publish -c Release -r osx-x64
工具使用
如果需要使用ApplicationInspector,则可以直接下载相应的ApplicationInspector版本。如果使用的是.NET Core版本,则还需要安装.NET Core v3.0或更高版本。
ApplicationInspector是基于命令行的工具,因此我们可以在Windows,Linux或macOS平台上直接从命令行终端运行该工具:
> dotnet AppInspector.dll or on *Windows* simply AppInspector.exe <command> <options>
Microsoft Application Inspector 1.0.25
ApplicationInspector 1.0.25
(c) Microsoft Corporation. All rights reserved
ERROR(S):
No verb selected.
analyze Inspect source directory/file/compressed file (.tgz|zip) against defined characteristics
tagdiff Compares unique tag values between two source paths
tagtest Test presence of smaller set or custom tags in source (compare or verify modes)
exporttags Export default unique rule tags to view what features may be detected
verifyrules Verify rules syntax is valid
help Display more information on a specific command
version Display version information
使用例
命令行帮助信息:
Usage: dotnet AppInspector.dll [arguments] [options]
dotnet AppInspector.dll -description of available commands
dotnet AppInspector.dll <command> -options description for a given command
分析命令:
Usage: dotnet AppInspector.dll analyze [arguments] [options]
Arguments:
-s, --source-path Required. Path to source code to inspect (required)
-o, --output-file-path Path to output file. Ignored with -f html option which auto creates output.html
-f, --output-file-format Output format [html|json|text]. Default = html
-e, --text-format Match text format specifiers
-r, --custom-rules-path Custom rules path
-t, --tag-output-only Output only contains identified tags. Default = false
-i, --ignore-default-rules Ignore default rules bundled with application. Default = false
-d, --allow-dup-tags Output only non-unique tag matches. Default = false
-c, --confidence-filters Output only matches with confidence [high|medium|low]. Default = high,medium
-k, --file-path-exclusions Exclude source files [none|<list>]. Default = sample,example,test,docs,.vs,.git
-x, --console-verbosity Console verbosity [high|medium|low|none]. Default = medium
-l, --log-file-path Log file path. Default is <application path>/log.txt
-v, --log-file-level Log file level [Debug|Info|Warn|Error|Fatal|Off]. Default = Error
扫描项目目录而不输出“ output.html”文件(默认):
dotnet AppInspector.dll analyze -s /home/user/myproject
添加自定义扫描规则:
dotnet AppInspector.dll analyze -s /home/user/myproject -r /my/rules/directory -r /my/other/rules
以JSON格式输出:
dotnet AppInspector.dll analyze -s /home/user/myproject -f json
Tagdiff命令
如果您需要使用不同的标签(功能)来分析,比较和报告两个不同的项目,例如项目的两个不同版本,则可以使用tagdiff命令:
Usage: dotnet AppInspector.dll tagdiff [arguments] [options]
Arguments:
--src1 Required. Source 1 to compare (required)
--src2 Required. Source 2 to compare (required
-t, --test-type Type of test to run [equality|inequality]. Default = equality
-r, --custom-rules-path Custom rules path
-i, --ignore-default-rules Ignore default rules bundled with application. Default = false
-o, --output-file-path Path to output file
-x, --console-verbosity Console verbosity [high|medium|low]. Default = medium
-l, --log-file-path Log file path
-v, --log-file-level Log file level [error|trace|debug|info]. Default = error
查看不同项目的比较结果的命令如下:
dotnet AppInspector.dll tagdiff --src1 /home/user/project1 --src2 /home/user/project2
基本用途1:
dotnet AppInspector.dll tagdiff --src1 /home/user/project1 --src2 /home/user/project2 -t equality
基本用途2:
dotnet AppInspector.dll tagdiff --src1 /home/user/project1 --src2 /home/user/project2 -t inequality
TagTest命令
此命令用于标识目标项目中是否存在指定的一系列规则。 例如,如果您想知道目标应用程序中是否使用了某种加密算法,则可以使用此命令。
命令参数如下:
Usage: dotnet AppInspector.dll tagtest [arguments] [options
Arguments:
-s, --source-path Required. Source to test (required)
-t, --test-type Test to perform [rulespresent|rulesnotpresent]. Default = rulespresent
-r, --custom-rules-path Custom rules path
-i, --ignore-default-rules Ignore default rules bundled with application. Default = true
-o, --output-file-path Path to output file
-x, --console-verbosity Console verbosity [high|medium|low]. Default = medium
-l, --log-file-path Log file path
-v, --log-file-level Log file level
使用以下命令查看目标项目中是否存在规则集:
dotnet AppInspector.dll tagtest -s /home/user/project1 -r /home/user/myrules.json
基本用途1:
dotnet AppInspector.dll tagtest -s /home/user/project1 -r /home/user/myrules.json -t rulespresent
基本用途2:
dotnet AppInspector.dll tagtest -s /home/user/project1 -r /home/user/myrules.json -t rulesnotpresent
ExportTags命令
此命令可以输出指定标签的规则集模式:
Usage: dotnet AppInspector.dll exporttags [arguments] [options]
Arguments:
-r, --custom-rules-path Custom rules path
-i, --ignore-default-rules Ignore default rules bundled with application. Default = false
-o, --output-file-path Path to output file
-x, --console-verbosity Console verbosity [high|medium|low]. Default = medium
将默认规则标签输出到终端:
dotnet AppInspector.dll exporttags
使用输出文件:
dotnet AppInspector.dll exporttags -o /home/user/myproject/exportags.txt
使用自定义规则和输出文件:
dotnet AppInspector.dll exporttags -r /home/user/myproject/customrules -o /hom/user/myproject/exportags.txt
Verify命令
此命令验证规则集是否兼容,并保证在导入和分析过程中不会发生错误:
Usage: dotnet AppInspector.dll verifyrules [arguments]
Arguments:
-r, --custom-rules-path Custom rules path
-i, --ignore-default-rules Ignore default rules bundled with application. Default = false
-o, --output-file-path Path to output file
-x, --console-verbosity Console verbosity [high|medium|low]. Default = medium.
验证默认规则:
dotnet AppInspector.dll verifyrules
使用自定义规则:
dotnet AppInspector.d
相关热词搜索:ApplicationInspector 软件源代码分析 软件源代码审核工具,识别功能 目标应用程序实现 重庆软件开发
上一篇:Check-LocalAdminHash:基于PowerShell开发的工具,通过WMI或SMB对多台主机进行身份验证
下一篇:TAS:轻量级框架,借助框架可修改tty并创建伪造代码,拥有tas_execv、tas_forkpty和tas_tty_loop三个主要函数
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了