摘要:
Clang Static Analyzer-使用手册-编写Checker代码实现 示例程序MainCallChecker.cpp #include"ClangSACheckers.h"#include"clang/StaticAnalyzer/Core/BugReporter/BugType.h"# 阅读全文
2021年4月9日
2021年4月8日
摘要:
Clang Static Analyzer-使用手册-编写Checker Checker是这个工具的灵魂 有了checker才可以检查你的代码 相当于就是CSA通过checker定义的检查方法去检查代码 添加Checker的办法 这里针对3.7.1的老版本,比较新的如llvm10以上的版本没法使用 阅读全文
2021年4月7日
摘要:
脱壳与加壳-加壳-1-手工实现添加区段 给壳代码开辟空间来存放壳代码 方法1:在空白的区段头到区段的位置添加区段头 在区段的最后一个后面开辟新的区段 步骤 1 读取文件 2 创建buff存放PE文件镜像 3 解析PE(DOS头、NT头、可选PE头、标准PE头) 4 添加区段、修改相关PE某些字段值 阅读全文
摘要:
Clang Static Analyzer使用手册-扫描漏洞的原理 当你用scan-build扫描代码后,查看对应的扫描结果会看到有很多对bug的形容,其实这些都是通过checker的处理,就相当于在checker中写好了怎么检查你的代码,然后如果出现了checker中的情况就会报错,就类似于你在v 阅读全文
摘要:
Clang Static Analyzer使用手册-scan-build查看bug 在下载编译并把可执行文件添加到环境变量后 clang和scan-build以及scan-view都是可以直接通过命令使用的工具了 https://clang-analyzer.llvm.org/scan-build. 阅读全文
摘要:
Clang Static Analyzer使用手册-Ubuntu 安装: 1 下载编译好了的二进制文件 https://releases.llvm.org/download.html 这种前面加了 Pre-Built Binaries的就是提前编译好了的二进制文件,就可以直接拿过来用 2 源码安装 阅读全文
2021年4月5日
摘要:
加壳与脱壳-添加壳代码的几种方式 上一次讲的方式是在区段头后面继续添加区段头,但是万一区段头的后面没有连续的空间怎么办 所以这里有好几种方式来处理 利用Dos Stub空间 PE文件里面有一段Dos Stub空间,没有什么用,所以可以利用起来作为加壳处理 可以通过把本来的 这一截(PE头+区段头)全 阅读全文
摘要:
加壳与脱壳--将ShellCode写入PE PE文件代码段的空白区不足以存放我们的Shellcode的时候就需要添加新的区段来保存我们的shellcode 如何给PE文件添加新的区段 1 添加一个空白区段 2 添加一个区段头 3 修改numberofsections(区段数量) 4 修改ImageS 阅读全文
摘要:
加壳与脱壳 壳的原理 PE结构体 1 PE文件结构图 PE文件用硬盘到能运行起来经历的步骤 1 将pe文件copy到内存 2 按内存对齐值对齐 3 加载dll 4 修复 IAT、重定位表 程序允许 操作系统通过读取PE文件的addressOfEntryPoint(OEP)+PE文件的imagebas 阅读全文
摘要:
软件漏洞-ShellCode加解密 ShellCode应该尽量避免大量的00,要解决这个问题需要对shellcode进行编码 shellcode的编码 shellcode的编码必须要可逆,不然怎么返回执行呢 所以直接用异或xor来处理 假设用 xor a,b来处理 a是我们的shellcode b是 阅读全文