- 博客(18)
- 资源 (1)
- 收藏
- 关注
转载 【转】PWN——GCC编译中几种保护打开和关闭的参数
PWN——GCC编译中几种保护打开和关闭的参数转载于:https://blog.csdn.net/lonyliu/article/details/90341012好记星不如烂笔头:NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入
2022-03-17 11:23:48 674
原创 学习打卡9:函数返回值
督促自己:2020-9-17学习记录:《逆向工程权威指南》上返回值x86中,通常通过EAX寄存器返回运算结果。返回值属于bty或char类型数据:存储在EAX寄存器的低8位--------AL寄存器返回值属于float类型数据:存储在FPU的ST(0)寄存器ARM系统,通常使用R0寄存器回传返回值。1.void型函数的返回值main()函数数据类型是void的时候,void类型函数的返回值、也就是主函数退出代码往往属于伪随机数。#include<stdio.h>void
2020-09-18 09:36:35 343
原创 学习打卡8:参数获取
督促自己:2020-9-16学习记录:参数获取:#include <stdio.h>int f (int a, int b,int c)( return a*b+c;);int main(){ printf("%d\n",f(1,2,3)); return 0;);x86MSVC关键汇编代码:从被调用方函数的数据栈的角度来看,外部参考的偏移量是正值,而局部变量的偏移量是负值。当需要访问栈帧(stack frame)以外的数据时,被调用方函数可把会变宏(
2020-09-16 22:40:21 183
原创 学习打卡7:scanf()函数和鲸鱼优化算法
督促自己:2020-9-15学习记录:《逆向工程权威指南》上scanf()函数:局部变量x:#include<stdio.h>int main(){ int x; printf("Enter X:\n"); scanf("%d",&x); printf("You entered %d...\n",x); return 0;}X86MSVC汇编:序言中,PUSH ECX指令作用不是为了保存EXC的值,是为了在栈内分配4个字节的空间、用来储
2020-09-15 18:04:05 1460
原创 学习打卡6:printf()函数 和 babydriver
督促自己:2020-9-14学习记录:《逆向工程权威指南》上printf()函数与参数传递#include<stdio.h>int main(){ printf("a=%d;b=%d;c=%d",1,2,3); return 0;};X86传递三个参数,在MSVC下的汇编:printf()函数的参数以逆序存入栈中;32位环境下,32位地址指针和int类型数据都占据32位/4字节空间,所以四个参数共占用:4x4=16字节“add esp,X”指令修正e
2020-09-15 15:09:47 378
原创 学习打卡5:栈与kernel base
督促自己:2020-9-11学习记录:《逆向工程权威指南》上函数序言和函数尾声函数序言汇编指令大致如下:push ebpmov ebp,espsub esp, X指令的功能室:在栈里保存EBP寄存器的内容,将ESP的值复制到EBP,然后修改栈的高度,以便为本函数的局部变量申请存储空间。函数尾声:mov esp,ebppop ebpret 0函数在退出时,要做启动过程的反操作,释放栈中申请的内存,还原ESP寄存器的值,将代码控制权还原给调用函数(callee)栈栈是CPU寄存
2020-09-11 18:40:00 406
原创 学习打卡4:堆漏洞的利用技术与技巧与堆风水学习
督促自己:2020-9-10学习记录:《逆向工程权威指南》上ARM64ARM64的CPU中可能运行于ARM模式,不可能运行于 Thmub 或者 Thmub-2 moshi ,所以它必须使用32位指令。STP(Store Pair) 指令是把寄存器的值存储到内存中的任意地址,明确是sp寄存器时,是存储在栈中。感叹号标志意味着其标注的运算会被优先执行。(这属于“预索引/pre-index”指令,对应“延迟索引/post-index”指令)在ARM64中,X29寄存器时帧指针,X30起着LR的作用
2020-09-10 22:56:10 2042
原创 每日打卡3:HelloWorld
督促自己:2020-9-8学习记录:《逆向工程权威指南》上Hello Word!cl 1.cpp /Fa 1.asm通过MSVC编译程序,/Fa选项将使编译器生成汇编指令清单文件,并指定汇编列表文件的文件名。.exe 文件生成过程:先生成 .asm 文件,然后会生成 .obj文件,再将之链接为可执行文件 .exe。在汇编指令清单里,所有函数(包括主函数)的函数体有标志性的函数序言和函数尾声。在函数的需要标志后就是call _printf指令。通过push,程序把字符串的指针推送如入栈,pri
2020-09-09 21:45:46 305
原创 学习打卡2:off-by-null
督促自己:2020-9-8学习笔记:《逆向工程权威指南上》12:指令集架构:x86指令集架构(ISA),opcode长度不同;ARM指令集架构(精简指令集RISC),opcode相同,机器码都封装在4个字节里面(ARM模式),或封装在2个字节里面(Thumb模式)x/86:函数返回值在eax中使用“栈”结构存储上述返回地址ARM:使用LR寄存器存储函数结束的返回地址BX LR 指令的作用就是跳转到返回地址MIPS:寄存器命名方式有两种:数字命名($0 ~ 31)和伪名称命名(
2020-09-08 18:11:08 870 1
原创 错误记录
ROPgadget突然抽风,出现错误:$ ROPgadget -help Traceback (most recent call last): File "/usr/local/bin/ROPgadget", line 4, in <module> __import__('pkg_resources').run_script('ROPGadget==5.8', '...
2019-12-14 00:06:29 2626 3
原创 做题记录
做题记录Reversing-x64Elf-100将其拖入ida,F5反汇编查看,代码很简单找到关键函数:sub_4006FD,查看:是个二维数组的比较函数,通过python脚本得出flag:v3 =["Dufhbmf","pG`imos","ewUglpt"]password = ''for i in range(12): password +=chr(ord(v3[i %...
2019-09-03 15:48:54 164
原创 做题记录
xctf之ReverseMe-120题目传送门:这里主要:base64wp:下载,看到是exe文件,去查壳,发现无壳,是Vc++编写的,用IDA查看了一下代码。发现要到达"correct"就得通过v9,v9是通过字符串"you_know_how_to_remove_junk_code"比较得到,寻找v13,发现for循环中:*(&v13 + v4) ^= 0x25u,与0x25...
2019-08-30 00:12:56 262
原创 知识杂记
小知识杂记:write()函数:函数定义:ssize_t write (int fd, const void * buf, size_t count);函数说明:write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。返回值:如果顺利write()会返回实际写入的字节数(len)。当有错误发生时则返回-1,错误代码存入errno中。read()函数函数定义:s...
2019-08-21 00:17:21 139
原创 知识杂记
知识杂记之gdb peda命令examine命令(简写是x)来查看内存地址中的值:x/<n/f/u> <addr>参数:(1)n、f、u是可选的参数。三个参数能够一起使用n是一个正整数,表示需要显示的内存单元的个数。就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。f 表示显示的格式。如果地址所指的是字符串,那么格式可以是s,如...
2019-08-21 00:16:55 194
原创 做题记录
逆向key题目传送门:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=5006题目附件百度网盘链接:https://pan.baidu.com/s/1T6kop6eH4FfeFjU51NvWKw提取码:gd7awp运行key.exe,程序输出一闪而过,程序崩溃。通过...
2019-08-02 13:12:07 213
原创 tinyCTF 2014 tt3441810
tt3441810 wp(未完成解析版)下载压缩包解压文件,得到一个未知文件rev100,在linux中通过file命令解析文件file rev100rev100: ASCII text, with CRLF line terminators返回的是一个 ASCII text,使用cat命令或者winhex打开cat rev10000400080 68 66 6C 00 00 48...
2019-04-23 16:46:21 1306
鲸鱼优化算法c++代码实现
2020-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人