二进制
文章平均质量分 68
个人学习 CTF 中学习到的知识点笔记
lllle00
这个作者很懒,什么都没留下…
展开
-
大小端
文章目录0x01 大小端简介0x02 实际使用0x03 带来的影响0x01 大小端简介 大小端,即为数据的存储方式。 小端,也称为低位优先(little-endian),即为数据的低位(可以类比为整数中的个位),存储在低位地址中。 假设我们想存储一个十六进制数:0x1234,假设系统使用小端的存储方式,其在内存中出现的顺序就是 34 12(假设存储地址从左到右依次递增)。 小端的存储方式是有利于计算机系统处理数据的,但不符合人们的常有逻辑的。 大端,也称为高位优先(big原创 2021-05-18 22:17:55 · 172 阅读 · 0 评论 -
Hash 算法(MD5、SHA-512)
文章目录0x01 Hash 算法简介0x02 常见的 Hash 算法0x03 MD5一、算法发展1.1 MD21.2 MD4二、MD5 原理2.1 数据填充2.2 添加长度2.3 初始化变量2.4 数据处理2.5 输出0x04 SHA 系列一、发展历史二、 SHA2 原理2.1 数据填充2.2 添加长度2.3 初始化变量2.4 数据处理2.5 输出0x05 参考0x01 Hash 算法简介 单向散列函数算法也称 Hash(哈希)算法,是一种将任意长度的消息压缩到某一固定长度的函数,理论上这是一种单原创 2021-04-29 14:49:34 · 4609 阅读 · 0 评论 -
lib 文件(基础)
文章目录0x00 前言0x01 lib 简介0x02 静态 lib0x03 动态 lib0x04 lib 的调用一、静态 lib二、动态 lib0x00 前言 本文主要是参考:在自己的项目中调用别人的库的方法(static lib库,dynamic lib库以及dll动态库)_邓无邪的博客-CSDN博客 写下来的0x01 lib 简介 lib 文件也是一种类似于 DLL 的库文件,常称之为静态链接库文件,而 lib 又有两种:静态 lib 和动态 lib。0x02 静态 lib 静态原创 2021-04-26 23:09:32 · 3451 阅读 · 0 评论 -
DLL(基础)
文章目录0x01 DLL简介0x02 DLL 调用0x03 与 lib 文件区别0x04 DLL 编写0x01 DLL简介 动态链接库(Dynamic-Link-Library,缩写dll), 是微软公司在微软视窗操作系统中实现共享函数库概念的一种实现方式。这些库函数的扩展名是 .DLL、.OCX(包含 ActiveX 控制的库)或者 .DRV(旧式的系统的驱动程序)。 其中的动态链接是指,将一部分常常会共享的代码(静态链接的 OBJ 程序库)制作成 DLL 档,当可执行文件调用到 DLL 档原创 2021-04-26 11:35:43 · 222 阅读 · 0 评论 -
PE 文件
文章目录0x01 PE文件结构0x02 各重要字段说明一、MZ 头部二、实模式残余程序三、PE 文件标志四、PE文件头五、PE 文件可选头六、段头部七、段0x01 PE文件结构PE结构如下图:︱ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄︱︱ MS-DOS ︱︱ MZ 头部 ︱--------------> 64 byte︱ ︱︱  ̄  ̄  ̄  ̄  ̄  ̄︱︱ MS-DOS ︱︱ 实模式残余程序 ︱--------------> 112 byte︱原创 2021-04-26 11:21:13 · 199 阅读 · 0 评论 -
ETC(反调试)
文章目录0x01 ETC0x01 ETC 是一种通过直接检测当前程序、窗口等等中是否含有常见反调试软件,如果有则停止程序。检测OllyDbg窗口----->FindWindow()检测OllyDbg进程------>CreatToolhelp32Snapshot()检查计算机名称是否为“TEST”,“ANALYSIS”等------->GetComputerName()检查程序运行路径是否存在“TEST”,“SAMPLE”等名称------->GetCommandL转载 2021-04-26 11:02:51 · 166 阅读 · 0 评论 -
ZwSetInformationThread(反调试)
文章目录0x01 ZwSetInformationThread () 介绍0x01 ZwSetInformationThread () 介绍 ZwSetInformationThread 等同于 NtSetInformationThread,通过为线程设置 ThreadHideFromDebugger,可以禁止线程产生调试事件。函数原型如下:VOID DisableDebugEvent(VOID){ HINSTANCE hModule; ZW_SET_INFORMATION_TH转载 2021-04-26 10:59:01 · 1694 阅读 · 0 评论 -
NtQueryInformationProcess (反调试)
文章目录0x01 NtQueryInformationProcess ()一、NtQueryInformationProcess ()二、CheckRemoteDebuggerPresent()0x01 NtQueryInformationProcess ()一、NtQueryInformationProcess () 函数原型:NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess ( IN HANDLE ProcessHandl转载 2021-04-26 10:39:12 · 2827 阅读 · 0 评论 -
PEB(反调试)
文章目录0x01 PEB 简介0x02 成员介绍一、BeingDebugged二、Ldr三、ProcessHeap四、NtGlobalFlag0x01 PEB 简介 PEB(Process Environment Block,进程环境块)是存放进程信息的结构体,尺寸非常大,其大部分内容都已被文档化。其中与我们的反调试有较大关系的成员有: +0x002 BeingDebugged : UChar +0x00c Ldr : Ptr32 _PEB_LDR_DATA +原创 2021-04-26 10:24:54 · 1216 阅读 · 0 评论 -
IDA python(简单)
文章目录0x01 简介0x02 使用方法0x03 相关语法0x01 简介 IDA python 是一个 IDA 的插件,其功能作用和 IDC 差不多,但 IDC 功能并没有 IDA python 强大。0x02 使用方法 IDA 6.8 后好像便自带了。和 IDC 类似,使用 python 语句写一段代码,然后放入命令中,运行即可。打开如下0x03 相关语法 IDA python 主要由 3 个模块组成: idc,idautils 和 idaapi。idaapi,及idaap原创 2021-04-25 09:50:03 · 1723 阅读 · 0 评论 -
IDC(简单)
文章目录0x01 IDC 简介0x02 使用方法0x01 IDC 简介 它是一种嵌入式语言,IDC 的存在极大地提高了IDA的扩展性,使得 IDA中许多重复的任务可以交由 IDC 来完成,在令其自动化的同时,又可对一些特殊情况进行控制。IDC 本身是一种类 C 的语言的脚本控制器,语法基本与 C 类似,简单易学。所有的 IDC 脚本都有一条包含 idc.idc 文件的语句,其为 IDA 的标准库函数,各函数的含义参考 IDA 帮助文件。变量定义形式为:auto var。其他一些逻辑、循环等语句与原创 2021-04-24 23:31:36 · 454 阅读 · 0 评论 -
SMC 初认识
文章目录0x01 SMC简介0x02 利用方式0x03 破解方式0x04 破解操作0x01 SMC简介 SMC(Self-Modifying Code)(自解码),就是先将一段代码先进行加密,在运行时再将该段代码解密,从而达成防止他人进行静态分析的目的。在很多的病毒中都有使用这种方法躲过病毒查杀,壳也是相类似的原理。0x02 利用方式直接和常用的反调试手段结合通过多种方式加密解密代码,层层嵌套0x03 破解方式 要点在于得到解密的 key 值,一般是简单的异或,也可以用加密算法加密原创 2021-04-24 21:03:16 · 969 阅读 · 0 评论 -
花指令初认识
文章目录0x01 花指令简介0x02 堆栈不平衡1、__cdecl2、__stdcall3、__fastcall。0x01 花指令简介 花指令是企图隐藏掉不想被逆向工程的代码块 (或其它功能) 的一种方法, 在真实代码中插入一些垃圾代码的同时还保证原有程序的正确执行, 而程序无法很好地反编译, 难以理解程序内容, 达到混淆视听的效果。花指令会使得 IDA 在分析过程中出现问题,可能产生堆栈不平衡。0x02 堆栈不平衡 IDA 中产生堆栈不平衡的原因可能是由于不同的函数调用约定,也可能是在实现原创 2021-04-24 11:20:51 · 488 阅读 · 0 评论 -
压缩、加密壳初认识
文章目录0x01 壳的简介0x02 加壳原理0x03 压缩壳0x04 加密壳0x05 脱壳0x01 壳的简介什么是壳: 壳是一种概念上的东西,人们为了保护软件不会被轻易的修改或者反编译,希望软件能够获得一种保护,能如同乌龟壳保护乌龟一般,能有一个东西保护自己,于是壳就出现了。关于壳的作用: 壳的初始作用是保护软件,但后来发展的方向不一就出现了各种各样的壳,大致有压缩壳、加密壳、VM 壳的分类。压缩壳故名思意,主要作用是用于压缩方面,可以有效的减小软件的大小;加密壳,其主要作用是保护软件;V原创 2021-04-24 11:02:23 · 2951 阅读 · 0 评论