安全
IDoubleTong
这个作者很懒,什么都没留下…
展开
-
栈溢出实践
实验代码实验环境为Win10,编译工具为VS2017(Release)。#define _CRT_SECURE_NO_WARNINGS#include <Windows.h>#include <stdio.h>#include <string.h>#def原创 2019-02-21 14:37:57 · 380 阅读 · 0 评论 -
IDA修改汇编指令
写一段小程序#include <stdio.h>#include <string.h>int main(){ char password[1024]; while (true) { printf("please input password:\t"); scanf("%s", password);原创 2019-01-21 18:56:47 · 29798 阅读 · 3 评论 -
遍历导出表
1.通过DOS头部找到PE头部    DOS头部的数据结构如下:_IMAGE_DOS_HEADER+0x000 e_magic : Uint2B+0x002 e_cblp : Uint2B+0x004 e_cp : Uint2B+0x006 e_crlc原创 2019-02-28 13:19:17 · 722 阅读 · 0 评论 -
获取DLL的基地址
(1)首先通过段选择器FS在内存中找到当前的线程环境块TEB。(2)线程环境块中找到进程环境块PEB的指针。(3)进程环境块中找到指向PEB_LDR_DATA结构体的指针,其中存放着已经被进程装载的动态链接库的信息。(4)PEB_LDR_DATA结构体中找到指向模块信息LIST_ENTRY链表的头指针。(5)遍历_LIST_ENTRY链表,找到想要获取DLL的基地址。1.TEB&nbs...原创 2019-02-24 18:11:59 · 2710 阅读 · 1 评论 -
栈溢出实践(2)
在之前《栈溢出实践》里,所有地址都是现场获得并填入的,这篇进行一点改进。获取’JMP ESP’指令 函数调用完之后,栈相较于调用之前都是平衡的,栈帧指向保存返回地址的下一帧。如果我们将返回地址指向‘jmp esp’指令,并且在保存返回地址的下一帧起始处填入代码,就无需定位运行代码的起始地址。&nbs...原创 2019-03-01 15:33:41 · 242 阅读 · 0 评论