ROP学习 前言本篇来学习一下ROP技术。对于栈溢出来说,可以构造足够长的数据来进行溢出,同时也可以在栈上存放可执行代码,在这里栈溢出原理与实践有介绍关于在栈上执行代码。如果在栈上不可以执行代码,就需要通过ROP跳转到libc获得shell。本篇主要是学习网上的资源,从0开始CTF-PWN(四)ROP绕过栈可执行保护与GOT表劫持 ROP代码 12345678910#include <stdio.h&g 2021-11-17 PWN ROP
攻防世界PWN-新手练习区 get_shell查看文件,看到是64位文件,通过checksec可以查看保护的机制。 保护机制保护机制这稍微介绍下 RELRO主要是用来保护重定位段对应数据区域,默认可写 Partial RELRO表示got表不可写,got.plt可写 Full RELRO表示got表,got.plt不可写 Stack这主要是栈保护,canary意思是金丝雀,是栈保护,方式是在靠近栈底某个位置设置初值,防止栈 2021-11-15 攻防世界writeup PWN CTF
Go语言学习笔记一 Go语言的结构Go语言的基础组成有以下几部分 包声明 引入包 函数 变量 语句&表达式 注释 写一个简单的代码,来看下大致的组成 12345678package main//定义了包名,每个程序都包含一个名为main的包import "fmt"//告诉GO编译器,这个程序使用了fmt的包func main() {//程序开始执行的函数 fmt.Printf 2021-11-08 Go语言学习 Go语言
攻防世界RE-新手练习区 Hello CTF详细分析先查壳,看到无壳,可以直接打开。 使用IDA打开,可以看到我们输入的被转为十六进制最终存储在了v10之中,然后和v13比较,我们可以看到这部分的值是 437261636b4d654a757374466f7246756e 那么只需要将这部分十六进制值转为字符就行了,就是flag。 注册机1234int main() { unsigned char flag 2021-11-03 攻防世界writeup 逆向工程 CTF RE
GDB学习--基本操作 前言记录一下学习GDB的一些东西,也不是所有的完全指令,主要还是一些日常用的。 在这里记录了一些比较全的命令,随时可以查看这里 https://github.com/evilpan/awesome-cheatsheets/blob/master/tools/gdb.txt GDB的一些命令先写一个小DEMO用来后面的GDB调试 123456789101112#include <stdio.h 2021-10-29 学习记录 逆向工程 GDB
elf文件格式 ELF文件格式elf文件,Executable and Linking Format,“可执行可连接格式”,具有这种格式的文件称为elf文件。 在elf规范中,把elf文件宽泛的称为“目标文件(Object File)”,这与我们通常理解的“.o”文件不同,elf文件仅指连接好的可执行文件。对于“.o”文件,可以直接称为可重定位文件。 elf文件主要分为三种类型: 可重定位文件(relocata 2021-10-26 PWN PWN 读书笔记 ELF
从源码到可执行文件 从源码到可执行文件我们平时接触到的都是高级语言,比如C语言,而当它真正在操作系统上执行的时候,每一条C语句都会被翻译成一系列的低级机器语言指令。最后,这些指令按照可执行文件的格式打包,并以二进制的形式存放起来。 编译原理编译器的作用就是读入以某种语言(源语言)编写的程序,输出等价的用另一种语言(目标语言)编写的程序。编译器可以分为前端和后端。前段主要将源程序分解成组成要素和相应的语法结构,通过这个 2021-10-26 PWN PWN 读书笔记 GCC编译原理
X绒面试题 前言正好拿到了一个X绒的面试题,来分析一下看看。 样本的信息 名称:c7d46a908d692a89f2e8e1303137f8d7a8d7e7ac MD5:2f02e4a81dd4ff32270ed31429fd88d1 SHA256:b7e98515a01b4c77a5ae97742338a51b325e7362e3f2976f252afb126ad6d3fa 样本大小:122880字节 详 2021-10-21 病毒分析 逆向工程 病毒分析
栈溢出原理与实践 前言本篇笔记主要是《0day安全:软件漏洞分析技术》第一章第二篇的笔记,记录下栈溢出的原理和实践 栈溢出原理与实践栈的相关概念就不再介绍了(其实是太懒了,不想再说了,主要搞逆向的对栈应该是非常熟悉了)。 修改邻接变量函数的局部变量在栈中是一个一个挨着排列的,如果在这些局部变量之中有数组之类的缓冲区,并且程序中存在着数组越界的缺陷,那么越界的数组元素就有可能破坏栈中的相邻变量的值,甚至破坏其中保存的 2021-10-20 PWN 读书笔记 漏洞
恶意代码分析实战-实验14 Lab 14-1分析使用IDA打开程序,首先会获取当前计算机的GUID,然后将后12位给拼接成XX:XX:XX:XX:XX:XX的形式。再获取用户名,再将用户名与刚才的字符串拼接。 拼接后的字符串 然后会将此字符串进行base64编码,,分析可知sub_4010BB是一个base64编码的函数,且此base64进行了魔改,用于补位的不是“=”而是字符“a”。 然后会进入sub_4011A3函 2021-10-13 恶意代码分析实战 逆向工程 病毒分析 Lab