随笔分类 -  PE

摘要:前言 在上一篇文章上使用到的添加用户的shellcode是怎么得到的呢? 先来拆分一下汇编的功能 OWASP ZSC部分源码 添加用户的汇编指令 拿到用户和密码后拼接成添加用户名的命令行,调用核心模块里的generate函数,生成要执行的命令行存进ecx寄存器里,再根据命令行十六进制的长度提升堆栈空 阅读全文
posted @ 2020-02-04 18:59 三米前有蕉皮 阅读(465) 评论(0) 推荐(0)
摘要:先声明这是不免杀的,只是演示。 "哔哩哔哩视频" 新增节 一般能实现特定功能的shellcode的长度都比较长,可以分到几个节上的空白区,但是这样麻烦啊,或者把最后一个节扩大,但是最后一个节一般没有执行的属性。所以选择新增一个节表。 修改添加节表 1. 先判断一下最后一个节表后面有没有够40个字节新 阅读全文
posted @ 2020-02-03 15:15 三米前有蕉皮 阅读(378) 评论(0) 推荐(0)
摘要:[TOC] 公式 1. RVA = 内存地址 ImageBase 2. 判断RVA在哪一个节上: 1. RVA =节n.VirtualAddress 2. RVA char str[] = "ABC"; int main() { printf("Address: %p\n", &str); prin 阅读全文
posted @ 2020-01-17 23:56 三米前有蕉皮 阅读(637) 评论(0) 推荐(0)
摘要:PE结构 PE文件的数据结构大部分都定义在VC98\Include\WINNT.H这个文件里。 MS-DOS 文件头 IMAGE_DOS_HEADER,一共64字节。 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic 阅读全文
posted @ 2020-01-16 10:49 三米前有蕉皮 阅读(344) 评论(0) 推荐(0)