网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

开发工具团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 工具 > 开发工具 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

ApplicationInspector:软件源代码分析和审核工具,识别目标应用程序中的功能,了解目标应用程序的基本特征和实现。

文章来源:重庆软件开发 发布时间:2020-02-23 14:27:35 围观次数:
分享到:

摘要:ApplicationInspector是功能强大的软件源代码分析和审核工具。它可以帮助研究人员识别和发现目标应用程序中的公共功能以及源代码中有趣的功能,并了解目标应用程序的基本特征和实现。

  ApplicationInspector是功能强大的软件源代码分析和审核工具。它可以帮助研究人员识别和发现目标应用程序中的公共功能以及源代码中有趣的功能,并了解目标应用程序的基本特征和实现。


  ApplicationInspector与传统的静态分析工具的不同之处在于,它不尝试识别目标应用程序模式的优缺点,仅报告其检测到的应用程序模式,并且使用400多个规则来完成检测,其中包含可能影响应用程序安全性的模式,例如使用的加密算法等。ApplicationInspector将直接检查目标应用程序的源代码,而不是选择信任现有文档或安全建议,这可以提高分析开源项目或其他组件的准确性。


  ApplicationInspector支持扫描各种编程语言,包括C,C++,Java,JavaScript,HTML,Python,Objective-C,GO,Ruby和PowerShell等。它还支持扫描混合语言文件。此外,ApplicationInspector还支持HTML,JSON和文本等输出格式。默认输出报告格式为HTML。


  值得一提的是,ApplicationInspector提供了一个可过滤的指示器,以提供最小的误报率,并帮助研究人员自定义默认规则和条件匹配逻辑。


  ApplicationInspector的功能如下所示:

blob.png

工具下载


  研究人员可以使用以下命令在本地克隆项目源代码:


  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三个主要函数

热门资讯

鼠标向下滚动