- 博客(27)
- 收藏
- 关注
原创 Assembly(六)--寄存器总篇章
我们知道在8086CPU中,用16位寄存器来存放一个字,高8位(H)存放高字节,低8位(:L)存放低字节,在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),因此一个字要用两个连续的内存空间来存储(每个一个字节,共两个字节,16位,每个空间内存8位,1字节),字的低位字节存放在低地址,高位字节存放在高地址.如图所示,不难看出 0,1 两个内存空间所组成的为 20000(4E20H) 其高位字节为4E 存放到1处,低位字节为20H存放到低处0。
2024-08-11 21:40:47
965
原创 Assembly(五)--寄存器最终章下篇
今天来更新一下寄存器章节的最后一章,在这之前先来回顾下上篇文章的内容:上篇文章中我们学习了:ds寄存器和【】地址对于ds寄存器来说,是存放的段地址,随后【x】根据ds寄存器中的内容进行查找,也学习了N字节地单元和地址单元的概念N地址字单元指的是内存数据的起始位置开始算一个字,也就是两个字节16位的字符,而地址单元是单单的指那么一个另外还学习了内存中字的传送,以及内存中的存放关系,低地址存放低位,高地址存放高位。如mov ax,[0]
2024-08-11 21:38:49
783
原创 Assembly(四)-寄存器最终章-上半部分
上一篇文章我们主要学习了段寄存器:CS和IP顺便通过实验的形式将debug中常用的指令熟悉过了.来回顾下本篇文章将讲解剩余的部分:ds和[]
2024-08-09 21:54:13
721
原创 Assembly-(一)
这对一位逆向工程师和二进制安全工程师是必要的一步 也是不可或缺的一步 本专栏基于王爽老师的汇编语言教材进行汇编语言是这样来进行的
2024-08-05 22:06:49
525
原创 逆向工程(1)-壳
vc6的特点是入口代码是固定的代码 入口调用的api也是相同的,其中有的push地址不同程序可能不同;对于区段来说 有四个。区段:.text .rdata.data.rsrc.reloc比vc6多一个.reloc。程序一般可分为以下几种类型:未加壳、压缩壳、传统加密壳、代码虚拟化保护、.Net程序加密。Vs的特点:入口点只有两行代码,一个CALL后接JMP。入口特征和模块特征都有krnln.fnr。也是我们在逆向工程中经常碰到的东西。(2)看区段信息和入口特征。来写一下常见的编译的特点。
2024-03-03 22:15:00
508
原创 IDEA wsdl教程
####今天我们先来学习一下如何利用IDEA发布WSDL首先打开IDEA新建一个Java项目OK了基本的项目已经创建完成!创建一个新的类命名为Java6WB代码如下所示:然后运行Test中的main方法发布服务,由于之前在8080端口运行过其他项目,所以这里将端口改为8090运行后访问浏览器的url’:在publish方法后的第一个参数内,在Java6WB后面加上?wsdl访问出现如下界面即可:说明发布成功然后通过JDK工具来生成客户端代码.JDK提供了一个wsimp
2022-06-08 16:04:18
3543
3
原创 PWN刷题记录(1)--ciscn_2019_n_5
这是第一篇的刷题记录,从ret2text开始刷起0x1 程序分析先checksec 一下64位的小端序,NX没开启,妥妥的写shellcode拖入IDA中查看一下main函数如下可以看到gets(text)有明显的溢出然后还可以看到关键的read函数,可以做libc泄露用,先留着然后查找一下有没有能用到的system函数和binsh无system函数估计也没有binsh了咋办呢>?看一下有没有可读可写可执行的字段呢?看看这里的两个变量:name\text存在!
2022-05-10 15:05:23
311
原创 格式化字符串漏洞
这可能是期末复习周之前有关pwn的最后一篇了无奈的博主因为期末考的408科目太多了只能去更新计算机组成原理和计算机网络了。废话不多说我们直接进去正题。格式化字符串漏洞格式化字符串函数可以将接受可变数量的参数,并将第一个参数作为格式化字符串,然后依据此来解析之后的参数。通俗的说,格式化字符串函数就是将计算机内存试中表示的数据转化为人类可读的字符串格式。在利用时分为三个部分:·格式化字符串函数、格式化字符串以及后续的参数。
2021-12-15 22:16:55
563
原创 PWN入门(练习课)
经过前几期的讲解,是时候来做几个实战的题目来练习一下了~!难度1:pwn1老样子,先checksec一下。可以看到这是一个32位的程序,并且开启了NX数据执行保护。(本来以为这个题目时有些难度,或许得构造ROPchain)但是事实证明我想多了。拖进IDA里面分析一下主函数里只是调用了一下welcome函数这里有个十分明显的getflag函数我们先去main函数里看一下好家伙,gets先生又出来演习了,可以看到buf只有14个长度再看一下有没有可能直接去溢出到system函数里面
2021-12-13 20:45:05
2044
原创 pwn入门系列-ret2libc2
Ret2libc2今天来做一下经典的retlibc系列的第二题资源:ret2libc2老样子先checksec[*] '/home/giantbranch/Desktop/pwn/ret2libc2' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)可以看到
2021-12-10 14:47:23
3069
原创 PWN入门系列(3)ROP的利用
ret2shellcode原理ret2shellcode,即控制程序shellcode代码。shellcode指的是用于完成某个功能的汇编代码,如:call等,常见的功能主要是获取目标系统的shell。如果想执行shellcode,需要对应的binary在运行时,shellcode所在的区域具有可执行权限。举例还是以bammboofox的ret2shellcode为例附:ret2shellcode第一步还是进行checksecgiantbranch@ubuntu:~/Desktop/PWN$
2021-12-04 23:46:22
2265
原创 PWN入门系列(2)ROP
PWN入门系列(2)ROP基本ROP在上一篇博客中我们介绍了在ELF文件经过checksec查看保护措施后,有一个叫做NX的保护措施,即数据执行保护,在此保护措施开启后,很难直接向栈或者堆上直接注入代码,所以攻击者得想办法绕过NX的保护机制,而ROP(Return Oriented Programming)就是主要的绕过措施,主要的思想是在栈缓冲溢出的基础上,利用程序中已经有的小片段,也被称作(gadgets)来改变某些寄存器或者变量的值,进而达到控制程序的执行流程。那么什么是gadgets呢?gad
2021-12-03 23:43:09
700
1
原创 PWN入门系列(2)栈溢出
PWN入门系列(2)栈溢出栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变(覆盖)。是一种特定的缓冲区溢出漏洞,类似的还有heap、bss溢出等。其前提是:·程序必须向栈上写入数据程序对某个函数或者某个模块的输入数据的大小没有控制得当。基本示例举个简单的例子:#include <stdio.h>#include <string.h>void success() { puts("You Hava
2021-12-02 23:23:05
1442
1
原创 PWN入门系列教程~(1)
PWN入门系列教程~(1)前言关于我的故事先来说下学习路线大致分为以下几个部分那么什么是PWN呢?栈函数调用栈寄存器函数调用栈的经典内存布局前言关于我的故事博主是一名20级在校大学生,平常热爱网络安全。喜欢打CTF,但是自己所在的学校里并没有人去担任PWN的工作,身为会长的我自来要挑起重担了,在跟几位有联系的PWN佬交流后明确了自己的要学pwn。先来说下学习路线大致分为以下几个部分学习基础:去学习一些基本的原理学习真实漏洞编写expFUZZ那么什么是PWN呢?来说下pwn的来源:
2021-11-30 22:39:16
7355
原创 数据结构(C语言)图的创建和度数统计(基础)
图图结构:是研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,图中任意元素之间都可能相关。图的应用极为广泛,已渗入到诸如语言学、逻辑学、物理、化学、电讯、计算机科学以及数学的其它分支。一个图(G)定义为一个偶对(V,E),记为G=(V,E) 。其中:V是顶点(Vertex)的非空有限集合,记为V(G);E是无序集(V,V)的一个子集,记为E(G) ,其元素是图的弧(Arc)。图的分类有向图(Digraph):若图G的关系集合E(G)中,顶点偶
2021-05-27 09:33:50
1725
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人