-
非常详细地解释plt&got
非常详细解释plt&got 比较好的参考文章GOT(Global Offset Table):全局偏移表用于记录在 ELF 文件中所用到的共享库中符号的绝对地址。在程序刚开始运行时,GOT 表项是空的,当符号第一次被调用时会动态解析符号的绝对地址然后转去执行,并将被解析符号的绝对地址记录在 GOT 中,第二次调用同一符号时,由于 GOT 中已经记录了其绝对地址,直接转去执行即可(不用重新解析)。PLT(Procedure Linkage Table):过程链接表的作用是将位置无关...…
-
一步步学ROP系列---x86
一步步学ROP——x86参考文章:一步一步学ROP之linux_x86篇ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。level1(Control Flow Hijack 程序流劫持)源代码:#include <stdio.h>#include <stdlib.h>#include <unistd.h>void vul...…
-
r2的学习
r2的学习入门指南:https://www.megabeets.net/a-journey-into-radare-2-part-2/可以黄色输出了一个地址 (0x08048370),这就是它自动识别的程序入口点 或者我们也可以使用ie命令手动打印出入口点输入aaa或者aa进行细致分析分析完成之后, r2会将所有有用的信息和特定的名字绑定在一起,比如区段、函数、符号、字符串,这些都被称作 ‘flags’, flags 被整合进 <flag spaces>,一个 flag 是所...…
-
git操作件提醒
关闭github的邮件提醒最近邮箱炸了,几十封新邮件,发现都是github的提交提醒,怎样关闭这东西?settings–>下图操作更新博客三连 git add . git commit -m “update” git push origin mastergithub pull 在web的github上更改了东西要重新pull下来再进行三连更新博客 git pull origin next:master…
-
gcc的编译关于程序保护开启的选项
gcc的编译关于程序保护开启的选项 CANNARY(栈保护) gcc -o test test.c // 默认情况下,不开启Canary保护gcc -fno-stack-protector -o test test.c //禁用栈保护gcc -fstack-protector -o test test.c //启用堆栈保护,不过只为局部变量中含有 char 数组的函数插入保护代码gcc -fstack-protector-all -o test test.c //启...…
-
pwn学习目录(持续更新)
学习书籍 《有趣的二进制》 《汇编语言》 《逆向工程核心原理》 《鳥哥的 Linux 私房菜》 《程序员的自我修养》 《linux二进制分析》 《深入理解计算机系统》 《深入理解linux内核》基础 linux程序的常用保护机制&&&EIP拓展 PIC/PIE&ASLR分析 canary分析 RELRO分析 NX(No-eXecute)的实现分析刷题网址 pwnable.kr pwnable.tw HITCON-Trainin...…
-
pwn基础学习(1)
第一天 满课的周三 看《有趣的二进制》,其中第三章中对缓冲区溢出的解释非常到位,其中也介绍了一些系统调用和shellcode的知识等 git命令学习:git pull origin next:master(把远程分支与当前本地分支进行合并) git学习参考网址 加油 2018-04-04 第二天 今天就很懒了,大概是放假,电脑又没电没带线吧 在看书;《有趣的二进制》看完了,其中调试器的生成,其中讲述了一些原理有点懵逼。。。 《汇编语言》,有重...…
-
UAF
UAF参考文档:https://www.anquanke.com/post/id/85281大概意思就是说,系统会保留刚刚被释放的内存块而不是去和其他的空闲块合并,因为系统希望不久的将来会有一个新的操作也是申请一个同样大小的内存。也就是延迟合并,这样可以加快系统的速度。这样那上面的代码就好解释了,我们在free(one) 这个操作后,one所占的内存并没有发生合并,而我们在malloc(two) 后,也就是不久的将来,我们新申请了一个同样大小的内存,所以系统根据这个算法,将上一步操作中释放...…
-
TAMU pwn
TAMU pwnpwn1因为其间隔为23,所以s的大小为23字节,填充23个字符;23计算过程如下:0x23-0xc(2*16+3-12=23) <img src="/images/posts/TAMU pwn/1519640728956.png" > '\x11\xBA\x07\xF0'为小端模式的书写payload:python -c “print ‘A’*23+’\x11\xBA\x07\xF0’” |nc pwn.ctf.tamu.edu 4321则flag为:gige...…
-
Pragyan CTF
Pragyan CTFreversing50直接IDA打开查看main函数,就是把十六进制转为char形式,flag就出来了 pwn200首先IDA载入看一下: 看到密码;运行一下 看到有flag,输入看一下,但是没有权限看,回去IDA看下函数 有个flag.txt文件,还有一个函数可以读这个文件,但是因为文件长度要36字节,而flag.txt只有6字节 看到密码;运行一下 看到有flag,输入看一下,但是没有权限看,...…