mirror of
https://github.com/nganhkhoa/CTF-All-In-One.git
synced 2024-12-25 11:41:16 +07:00
commit
90b030ad09
@ -18,7 +18,7 @@
|
|||||||
├── pic
|
├── pic
|
||||||
│ ├── 1.3_byte_order.png
|
│ ├── 1.3_byte_order.png
|
||||||
├── README.md
|
├── README.md
|
||||||
└── source
|
└── src
|
||||||
├── Crypto
|
├── Crypto
|
||||||
├── Misc
|
├── Misc
|
||||||
├── Pwn
|
├── Pwn
|
||||||
@ -32,7 +32,7 @@
|
|||||||
- `CONTRIBUTION.md`:合作与贡献的相关内容。
|
- `CONTRIBUTION.md`:合作与贡献的相关内容。
|
||||||
- `doc`:该文件夹包含书全部内容的 Markdown 文件。(文字)
|
- `doc`:该文件夹包含书全部内容的 Markdown 文件。(文字)
|
||||||
- `pic`:该文件夹包含所有 Markdown 中引用的所有图片文件。(图片)
|
- `pic`:该文件夹包含所有 Markdown 中引用的所有图片文件。(图片)
|
||||||
- `source`:该文件夹包含书中示例和练习的二进制文件或源代码,分专题保存。(代码)
|
- `src`:该文件夹包含书中示例和练习的二进制文件或源代码,分专题保存。(代码)
|
||||||
|
|
||||||
##### 注意事项
|
##### 注意事项
|
||||||
- 在开始编写某一个内容之前,请先在下面的表格里注明,以避免重复和冲突。如果是已经完成的章节,则可以直接进行修改。
|
- 在开始编写某一个内容之前,请先在下面的表格里注明,以避免重复和冲突。如果是已经完成的章节,则可以直接进行修改。
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
- [四、技巧篇](doc/4_tips.md)
|
- [四、技巧篇](doc/4_tips.md)
|
||||||
- [4.1 AWD模式](doc/4.1_AWD.md)
|
- [4.1 AWD模式](doc/4.1_AWD.md)
|
||||||
|
- [4.2 Linux 命令行技巧](doc/4.2_Linux_terminal_tips.md)
|
||||||
|
|
||||||
- [五、高级篇](doc/5_advanced.md)
|
- [五、高级篇](doc/5_advanced.md)
|
||||||
- [5.1 Fuzz 测试](doc/5.1_fuzz.md)
|
- [5.1 Fuzz 测试](doc/5.1_fuzz.md)
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
# Linux 基础
|
# Linux 基础
|
||||||
|
|
||||||
- [常用基础命令](#command)
|
- [常用基础命令](#常用基础命令)
|
||||||
- [字节序](#order)
|
- [字节序](#字节序)
|
||||||
|
- [输入输出](#输入输出)
|
||||||
|
|
||||||
## <span id="command">常用基础命令</span>
|
|
||||||
|
## 常用基础命令
|
||||||
```text
|
```text
|
||||||
ls 用来显示目标列表
|
ls 用来显示目标列表
|
||||||
|
|
||||||
@ -32,7 +34,7 @@ nano / vim / emacs 字符终端的文本编辑器
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## <span id="order">字节序</span>
|
## 字节序
|
||||||
目前计算机中采用两种字节存储机制:大端(Big-endian)和小端(Little-endian)。
|
目前计算机中采用两种字节存储机制:大端(Big-endian)和小端(Little-endian)。
|
||||||
|
|
||||||
>MSB (Most Significan Bit/Byte):最重要的位或最重要的字节。
|
>MSB (Most Significan Bit/Byte):最重要的位或最重要的字节。
|
||||||
@ -44,3 +46,15 @@ Big-endian 规定 MSB 在存储时放在低地址,在传输时放在流的开
|
|||||||
例如十六进制整数 0x12345678 存入以 1000H 开始的内存中:
|
例如十六进制整数 0x12345678 存入以 1000H 开始的内存中:
|
||||||
|
|
||||||
![](../pic/1.3_byte_order.png)
|
![](../pic/1.3_byte_order.png)
|
||||||
|
|
||||||
|
|
||||||
|
## 输入输出
|
||||||
|
- 使用命令的输出作为可执行文件的输入参数
|
||||||
|
- ```$ ./vulnerable 'your_command_here'```
|
||||||
|
- ```$ ./vulnerable $(your_command_here)```
|
||||||
|
- 使用命令作为输入
|
||||||
|
- ```$ your_command_here | ./vulnerable```
|
||||||
|
- 将命令行输出写入文件
|
||||||
|
- ```$ your_command_here > filename```
|
||||||
|
- 使用文件作为输入
|
||||||
|
- ```$ ./vulnerable < filename```
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# C 语言基础
|
# C 语言基础
|
||||||
|
|
||||||
- [从源代码到可执行文件](#compile)
|
- [从源代码到可执行文件](#从源代码到可执行文件)
|
||||||
|
|
||||||
## <span id="compile">从源代码到可执行文件</span>
|
## 从源代码到可执行文件
|
||||||
我们以经典著作《The C Programming Language》中的第一个程序 “Hello World” 为例,讲解 Linux 下 GCC 的编译过程。
|
我们以经典著作《The C Programming Language》中的第一个程序 “Hello World” 为例,讲解 Linux 下 GCC 的编译过程。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
|
9
doc/4.2_Linux_terminal_tips.md
Normal file
9
doc/4.2_Linux_terminal_tips.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Linux 命令行技巧
|
||||||
|
|
||||||
|
- [重定向输入字符](#重定向输入字符)
|
||||||
|
|
||||||
|
|
||||||
|
## 重定向输入字符
|
||||||
|
有时候我们需要在 shell 里输入键盘上没有对应的字符,如 `0x1F`,就需要使用重定向输入。下面是一个例子:[源码](../src/Others/4.2_0x1f.c)
|
||||||
|
|
||||||
|
![](../pic/4.2_0x1f.png)
|
@ -171,9 +171,9 @@ strings [executable] | grep -i upx
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### 练习
|
#### 练习
|
||||||
[strings_crackme](../source/Reverse/strings_crackme)
|
[strings_crackme](../src/Reverse/strings_crackme)
|
||||||
|
|
||||||
[flag_pwnablekr](../source/Reverse/flag_pwnablekr)
|
[flag_pwnablekr](../src/Reverse/flag_pwnablekr)
|
||||||
|
|
||||||
|
|
||||||
## xxd
|
## xxd
|
||||||
@ -193,4 +193,4 @@ xxd -g1
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### 练习
|
#### 练习
|
||||||
[xxd_crackme](../source/Reverse/xxd_crackme) (使用 *strings* 再做一次)
|
[xxd_crackme](../src/Reverse/xxd_crackme) (使用 *strings* 再做一次)
|
||||||
|
BIN
pic/4.2_0x1f.png
Normal file
BIN
pic/4.2_0x1f.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
14
src/Others/4.2_0x1f.c
Normal file
14
src/Others/4.2_0x1f.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
void main() {
|
||||||
|
char data[8];
|
||||||
|
char str[8];
|
||||||
|
printf("请输入十六进制为 0x1f 的字符: ");
|
||||||
|
sprintf(str, "%c", 31);
|
||||||
|
scanf("%s", data);
|
||||||
|
if (!strcmp((const char *)data, (const char *)str)) {
|
||||||
|
printf("correct\n");
|
||||||
|
} else {
|
||||||
|
printf("wrong\n");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user