-
2021-06-21 09:57:13
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
前文分享了逆向知识,利用Cheat Engine工具逆向分析游戏CS1.6,并实现无限子弹功能。这篇文章将结合作者的《系统安全前沿》作业,论文及绿盟李东宏老师的博客及宋老师的论文,从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识。在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,主要参考李东宏老师从企业恶意样本分析的角度介绍溯源工作。关于攻击溯源的博客和论文都比较少,希望这篇文章对您有所帮助,如果文章中存在错误、理解不到位或侵权的地方,还请告知作者与海涵。且看且珍惜,加油~
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~
更多相关内容 -
iOS覆盖率检测原理与增量代码测试覆盖率工具实现
2021-02-24 19:59:34代码覆盖率检测正是帮助开发、测试同学提前发现问题,保证代码质量的好帮手。对于开发者而言,代码覆盖率可以反馈两方面信息:自测的充分程度。代码设计的冗余程度。尽管代码覆盖率对代码质量有着上述好处,但在iOS... -
java代码检测工具
2019-01-22 09:55:49基于java开发手册的java扫描插件,主要功能是扫描出java代码潜在的代码隐患,提升代码质量! -
sonar代码检测
2019-02-01 14:25:23sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等 -
Java语言源代码漏洞测试规范(1).pdf
2020-09-22 11:41:05一个GB文件,主要用于java语言源代码测试的依据。内容包括安全漏洞分类和每种漏洞的代码案例以及整改方案。 -
路径条件驱动的混淆恶意代码检测 (2013年)
2021-05-12 09:07:37代码混淆是恶意代码隐藏自身的主要手段之一.本文提出了一种新的动态检测方法,能够有效检测混淆后的恶意代码....在原型系统的测试中,与12种杀毒软件的横向测试表明,该方法在对混淆恶意代码检测中能有效地降低漏报率. -
静态代码检测工具
2015-09-01 14:40:13自己从网上搜索的一些静态代码检测工具的简要描述! -
jenkins+sonar 实现代码检测
2022-03-18 16:26:36docker安装jenkins+sonarqube实现代码检查docker安装jenkins+sonar 实现代码检测
一、sonarqube简介
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。通过插件形式,可以支持众多计算机语言。
比如 java, C#, go,C/C++, PL/SQL,Cobol,JavaScrip,Groovy等。sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。
二、安装postgresql数据库
#注意:sonarqube7.9版本以上不再支持MySQL数据库,这里我们使用postgresql
1、拉取postgresql、sonarqube、jenkins的镜像
[root@VM-0-15-centos ~]# docker pull postgres:latest Trying to pull repository docker.io/library/postgres ... latest: Pulling from docker.io/library/postgres ae13dd578326: Pull complete 723e40c35aaf: Pull complete bf97ae6a09b4: Pull complete 2c965b3c8cbd: Pull complete c3cefa46a015: Pull complete 64a7315fc25c: Pull complete b9846b279f7d: Pull complete ed988fb8e7d9: Pull complete ed4bb4fd8bb5: Pull complete ead27f1733c8: Pull complete 7d493bacd383: Pull complete 0920535e8417: Pull complete db76d5bdbf2c: Pull complete Digest: sha256:99aa522df573a6f117317ab9627c1ba4717513090fd013b937c91a288933ee90 Status: Downloaded newer image for docker.io/postgres:latest [root@VM-0-15-centos ~]# docker pull sonarqube:latest Trying to pull repository docker.io/library/sonarqube ... latest: Pulling from docker.io/library/sonarqube 36ccefbf3d8a: Pull complete afb294ac7ddc: Pull complete 7963d7b13fc9: Pull complete Digest: sha256:90a68d1ac2c3ce072b54615d37f59644b988bb603fc7fb23e3d12914b854e41a Status: Downloaded newer image for docker.io/sonarqube:latest [root@VM-0-15-centos ~]# docker pull jenkins/jenkins:latest Trying to pull repository docker.io/jenkins/jenkins ... latest: Pulling from docker.io/jenkins/jenkins e4d61adff207: Pull complete eacef06daf30: Pull complete ca581b0141a3: Pull complete d872c65909bb: Pull complete bcce550e05a9: Pull complete 3461f061a833: Pull complete 3b6f8a58a68d: Pull complete 6d47f55855ba: Pull complete baa80a92c8e4: Pull complete 39889d888af7: Pull complete 18b5e0e36b4c: Pull complete a53e22d026ad: Pull complete a281963da5b5: Pull complete 2366689c95a7: Pull complete 27cbe8a0f233: Pull complete fffccee1c284: Pull complete a6afec98241f: Pull complete Digest: sha256:a5215b81a7f6e111ed6625b342521145e24c232891615be29ce3a251a631feac Status: Downloaded newer image for docker.io/jenkins/jenkins:latest [root@VM-0-15-centos ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/sonarqube latest f4599081097a 11 hours ago 520 MB docker.io/postgres latest 5cd1494671e9 13 hours ago 376 MB docker.io/jenkins/jenkins latest f7d565ddb272 2 days ago 460 MB
2、创建工作目录
[root@VM-0-15-centos ~]# mkdir -p /opt/apps/sonarqube/{extensions,logs,data} [root@VM-0-15-centos ~]# mkdir -p /opt/apps/postgres/{postgresql,data} [root@VM-0-15-centos ~]# mkdir -p /opt/apps/jenkins_mount/
3、启动容器
#启动postgresql镜像 docker run -d --name postgres -p 5432:5432 \ -v /opt/apps/postgres/postgresql:/var/lib/postgresql \ -v /opt/apps/postgres/data:/var/lib/postgresql/data \ -v /etc/localtime:/etc/localtime:ro \ -e POSTGRES_USER=sonar \ -e POSTGRES_PASSWORD=sonar \ -e POSTGRES_DB=sonar \ -e TZ=Asia/Shanghai \ --restart always \ postgres:latest #启动sonarqube镜像 docker run -d --name sonarqube -p 6004:9000 \ --link postgres \ -v /opt/apps/sonarqube/extensions:/opt/sonarqube/extensions \ -v /opt/apps/sonarqube/logs:/opt/sonarqube/logs \ -v /opt/apps/sonarqube/data:/opt/sonarqube/data \ -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar \ -e SONARQUBE_JDBC_USERNAME=sonar \ -e SONARQUBE_JDBC_PASSWORD=sonar \ --restart always \ --privileged=true \ sonarqube:latest #sonarqube启动需要修改内核参数 vim /etc/sysctl.conf # 增加以下配置 vm.max_map_count=262144 fs.file-max=65536 # 使配置生效 sysctl -p # 启动jenkins镜像 docker run -d -p 10240:8080 -p 10241:50000 \ -v /var/jenkins_mount:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ -v /usr/local/jdk-11.0.14/:/usr/local/jdk-11.0.14/ \ --name myjenkins \ jenkins/jenkins
三、配置sonar
默认密码admin/admin点击my account
按图操作,生成token
四、配置jenkins
#jenkin初始化过程略
1、系统管理-插件管理
安装sonar插件
2、系统管理-凭据管理
添加sonar凭据(在sonar上生成的token)
3、系统管理-系统配置
配置sonar
4、系统配置-全局工具配置
配置jdk(可使用自己配置的,也可以在线安装,在线安装需要oracle账号)
配置sonar,选择maven安装,安装最新版即可
五、配置流水线
1、新建流水线
2、选择jdk和配置代码地址
3、增加构建步骤,选择 Execute SonarQube Scanner
参数:
sonar.projectKey=自定义 sonar.projectName=自定义 sonar.projectVersion=1.0 sonar.language=java sonar.sourceEncoding=UTF-8 sonar.sources=$WORKSPACE sonar.java.binaries=$WORKSPACE
4、执行流水线
执行成功后可从工程界面跳转到sonar界面,查看代码检查结果
执行成功后可从工程界面跳转到sonar界面,查看代码检查结果
-
[网络安全自学篇] 八十七.恶意代码检测技术详解及总结
2020-07-16 12:03:44这是作者网络安全自学教程...这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。基础性文章,希望对您有所帮助~这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了威胁情报分析,通过Python抓取FreeBuf网站“APT”主题的相关文章。这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。基础性文章,希望对您有所帮助~
自全球第一个计算机病毒出现后,人们通过与病毒长期的斗争,积累了大量反病毒经验,掌握了大量实用的反病毒技术,并研制出一系列优秀的反病毒产品,主要用于病毒的防护、检测及其清除等。病毒的检测技术主要包括特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术、主动防御技术,以及新兴的云查杀技术等。个人用户也可以通过经验、安全检测工具和反病毒软件来检查计算机是否感染病毒,或是采用沙箱及相关静、动态分析手段来对病毒进行深入分析。
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~
-
Windows下 C++代码检测工具
2019-07-06 12:53:22最近在查阅一些windows系统下的C++代码及性能检测工具, 按照检测类别分别静态检测和动态检测。 静态检测: 在程序没有被实际执行的情况下执行的计算机软件分析,大部分是对源代码的分析和检测。 动态检测: 通过...最近在查阅一些windows系统下的C++代码及性能检测工具, 按照检测类别分别静态检测和动态检测。
静态检测: 在程序没有被实际执行的情况下执行的计算机软件分析,大部分是对源代码的分析和检测。
动态检测: 通过在真实或虚拟处理器上执行程序来执行的计算机软件的分析。
动态检测范围包括:代码覆盖率分析、 内存检测、安全性分析、并发分析、性能分析等。
今天的文章主要针对 静态检测 及 动态检测。
目录
win下C++ 静态代码检测
-
工具一:Tscancode(推荐)
腾讯开源软件,地址:https://github.com/Tencent/TscanCode , 操作界面如下, 使用简单,检查结果一目了然。目前有腾讯开发维护。
-
工具二:cppcheck
开源,地址:http://cppcheck.net/ , cppcheck检查结果如下:
关于cpcheck 与 tscancode 及其他主流静态检测工具的对比可参考: https://blog.csdn.net/lovespring116/article/details/73504190, 本文推荐使用 Tscancode对代码进行静态检测
-
工具三: Visual stdio中代码分析
-
工具四: cpplint(推荐)
cpplint:根据google代码风格进行检查,介绍:https://en.wikipedia.org/wiki/Cpplint, 可以嵌入到vs程序中, 下载地址: https://pypi.org/project/cpplint/, 使用参考: https://blog.csdn.net/liulihuo_gyh/article/details/79986685
需要下载python,建议下载 python 2.x版本,本文使用 2.7.0,下载地址 https://www.python.org/downloads/release/python-270/ Windows X86-64 MSI Installer, cpplint 嵌入到vs中操作如下, 双击输出中的具体行,可以定位到源文件中。
win下C++动态检测
代码覆盖率检测:OpenCppCoverage (推荐)
开源地址: https://github.com/OpenCppCoverage/OpenCppCoverage 如果想在vs中插件运行, 工具--扩展和更新, 在联机中搜索 OpenCppCoverage。使用时在工具下可以直接运行opencppcoverage。 如果使用命令行运行可以添加 opencppcoverage的系统环境变量, 在cmd中通过命令使用。检测结果如下:红色代码未执行, 绿色代码已执行。
内存检测方法:
工具一: windows CTR检测
缺点:只能在debug模式下使用,release版本不支持。
#include <iostream> #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #ifdef _DEBUG #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) // Replace _NORMAL_BLOCK with _CLIENT_BLOCK if you want the // allocations to be of _CLIENT_BLOCK type #else #define DBG_NEW new #endif int main() { printf("this is a test in main\n"); int *a = DBG_NEW int[100]; system("pause"); _CrtDumpMemoryLeaks(); return 0; }
debug下的输出:
Detected memory leaks!
Dumping objects ->
consoleapplication3\consoleapplication3\main.cpp(28) : {68} normal block at 0x0136D330, 400 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.工具二: vld检测(推荐)
官网介绍: https://kinddragon.github.io/vld/, github地址: https://github.com/KindDragon/vld
使用方法, 到https://kinddragon.github.io/vld/ 下载 vld,安装后在安装目录下生成 include lib bin等文件, 新建工程,将以上文件配置到工程中。
#include <iostream> #define VLD_FORCE_ENABLE //VLD_FORCE_ENABLE宏需要定义在 vld.h 之前 #include "vld\include\vld.h" #include "vld\include\vld_def.h" int main() { printf("file: %s, line:%d \n", __FILE__, __LINE__); int *b = new int[1000]; system("pause"); return 0; }
或者在预处理宏 中添加 VLD_FORCE_ENABLE, 如下图:
结果输出:
Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
Visual Leak Detector Version 2.5.1 installed.
file: main.cpp, line:8
请按任意键继续. . .程序结束运行后输出如下, 双击工程源文件对应的泄露可以直接跳转到该文件。
WARNING: Visual Leak Detector detected memory leaks! ---------- Block 1 at 0x00123018: 4000 bytes ---------- Leak Hash: 0x11C3C7BA, Count: 1, Total 4000 bytes Call Stack (TID 32116): MSVCR120.dll!operator new() d:\work\code\testcode\consoleapplication2\consoleapplication2\main.cpp (10): ConsoleApplication2.exe!main() KERNEL32.DLL!BaseThreadInitThunk() + 0x24 bytes ntdll.dll!RtlAreBitsSet() + 0x88 bytes ntdll.dll!RtlAreBitsSet() + 0x58 bytes Data: 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD BA ........ ........ Visual Leak Detector detected 1 memory leak (4000 bytes). Largest number used: 4000 bytes. Total allocations: 4000 bytes. Visual Leak Detector is now exiting.
工具三: Dr Memory
官网介绍:http://www.drmemory.org/, 使用介绍:http://drmemory.org/docs/page_options.html
Dr Memory是基于DynamoRIO开发的跨平台内存调试程序, 支持 Windows Linux Android和Mac。
DynamoRIO 是一个跨平台的二进制插桩程序,支持 Windows Linux Android等。
工具对比说明: 工具一需要在程序 debug 模式下使用, vld和 drmemory 在debug 和 release 下都可以检测,不过如果工程较大,drmemory的全量检测会很卡,指定参数 -leaks_only 可以只检测内存问题。
-
-
代码相似度检测测试数据
2019-02-19 20:51:22提供的代码相似度检测测试数据,以Java代码为主,以供参考 -
[网络安全自学篇] 八十八.基于机器学习的恶意代码检测技术详解
2020-07-19 16:30:42前文分享了传统的恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑... -
重复代码检测
2020-12-20 06:32:59---Mac 平台, Java代码检测示例背景开发中,如果有相同逻辑,应当根据实际情况抽取公共方法或者公共类,这是程序员的一个基本素养。 但在历史有一定久远的工程中, 代码重复的现象可能就会比较多。代码重复率可以做... -
[系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
2021-07-24 22:00:04前文从总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑师兄的... -
论文研究-基于Token的结构化匹配同源性代码检测技术研究.pdf
2019-07-22 21:12:51为此,针对代码同源性检测结构化匹配进行了研究,在LCS(longest common sequence)算法中融入了跳变信息保留、结构边界划分、窗口搜索、计数重置、有效序列界定等逻辑,...,提出了一种结构化匹配同源性代码检测技术... -
[系统安全] 三十二.恶意代码检测(2)常用技术详解及总结
2021-07-16 17:47:54这篇文章将详细总结恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。希望这篇文章对您有所帮助,如果文章中存在错误、理解不到位... -
FOSSID(开源代码检测工具)
2022-02-09 09:38:51在Github、Gitkraken等全球知名开源社区的开源代码检测工具排行榜均位列第一。而在中国的开源社区及开源治理白皮书中多次被提名。 作为开源治理的标杆,中国赛迪检测认证中心、中国赛宝实验室,中国电子技术标准化... -
yandex-school-2014-codecov:测试覆盖率。 代码检测
2021-07-11 09:08:01测试覆盖率。 代码检测 2014 年 Yandex 软件开发流程自动化学校的教育项目。该项目旨在教学生如何衡量测试覆盖率、如何实现自己的 javaagent 以及如何检测代码。 -
[系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间信息
2021-07-30 16:52:33前文从总结基于机器学习的恶意代码检测技术,主要参考郑师兄的视频总结,包括机器学习概述与算法举例、基于机器学习方法的恶意代码检测、机器学习算法在工业界的应用。这篇文章将尝试软件来源分析,结合APT攻击中... -
电脑性能检测代码
2017-04-27 19:42:39这是在网上看到的,是免费的,现在把它分享一下 -
静态测试-代码审查
2018-02-13 14:48:33代码审查:包括代码审查的测试内容、代码审查的做成和方式、代码审查的步骤、代码审查组的构成、代码审查清单等。 -
scala-linter:Scala死代码检测编译器插件
2021-05-31 23:58:26scala-linter 用于 scala 死代码检测的实验 linter。 测试死代码是否影响 scalac 的速度。 类似项目 相关项目 -
矩形检测opencv代码
2019-02-26 14:47:02矩形检测opencv代码,压缩包中有测试用图,代码可以直接调用使用。 -
C/C++ 代码检测工具
2018-07-13 13:33:38valgrind:...C/C++静态代码检查工具对比分析:http://qa.blog.163.com/blog/static/190147002201611147530522/ C++代码质量扫描主流工具深度比较:https://blog.csdn.net/wetest_tencent/article... -
恶意代码检测技术
2019-10-15 10:55:21n-gram字节代码作为特征用于检测野外恶意可执行文件;(n-g表达式是指n序列中相邻的元素,而这些元素可以是字节、指令或其他信息软件的功能) 挖掘windows中可执行文件的结构特征; 恶意软件二进... -
阿里java代码检测工具p3c
2017-12-26 09:48:56该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则... -
推荐几款代码检查工具,淘宝开源代码质量检测工具
2020-10-26 00:00:00好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,... -
深度学习在恶意代码检测方面的应用简单调研
2019-12-16 17:30:28在这样的形势下,传统的恶意代码检测方法已经无法满足人们对恶意代码检测的要求。比如基于签名特征码的恶意代码检测,这种方法收集已知的恶意代码,以一种固定的方式生成特定的签名,维护这样的签名库,当有新的检测... -
前后端之代码检测
2019-02-28 11:09:32我们写代码的时候触发强烈按照代码规范来执行,否则稍有不注意就会在哪里,写的代码有欠缺,并且在团队开发中为了统一大家书写规范避免一些不必要的规范冲突,提高代码的可维护性,所以引入代码检测工具非常重要, ...