Shellcode
ThatAllOver
学习快乐才是快乐。
展开
-
获取GetProcAddress函数地址
我们都知道,GetProcAddress函数就是从系统文件kernel32.dll中导出的,而kernel32.dll是系统的基础链接库,每一个程序都会加载kernel32.dll的,我们只要得到kernel32.dll的基址就可以找到GetProcAddress函数的地址了。而获取kernel32.dll的加载基址的方法有3种,第一种就是通过特征匹配的暴力搜索,第二种就是利用系统的SEH机制找到...原创 2018-10-28 21:45:50 · 5359 阅读 · 0 评论 -
从动态链接库中获取jmp esp地址
#include <windows.h>#include <stdio.h>int main(int,char**,char**){ BYTE* pbyte; int nPos=0,nAddr=0; HINSTANCE hHinst=NULL; bool bTips=true; hHinst=LoadLibrary("user32.dll"); if(!...原创 2018-10-26 20:00:34 · 2116 阅读 · 0 评论 -
常见跳转指令与机器码的对应关系
机器码 跳转指令 机器码 跳转指令 FF E0 JMP EAX FF D0 CALL EAX FF E1 JMP EBX FF D1 CALL EBX FF E2 JMP ECX FF D2 CALL ECX FF E3 JMP EDX FF D3 CALL EDX FF E4 JM...原创 2018-10-26 20:30:14 · 2476 阅读 · 0 评论 -
动态获取Kernel32的函数地址
VOID ShowDll(){ //Kernel32.dll基址 DWORD dwBase; //Dos指针 PIMAGE_DOS_HEADER pDos = NULL; //Nt指针 PIMAGE_NT_HEADERS pNt = NULL; //导出表指针 PIMAGE_EXPORT_DIRECTORY pExport = NULL; //EAT PDWORD ...原创 2019-05-04 16:14:14 · 1105 阅读 · 0 评论 -
Opcode指令解析
2.1 实模式,保护模式,以及虚拟8086模式指令格式Intel-64和IA-32架构指令编码是图2-1所示格式的子集.一条指令包括可选的指令前缀(顺序任意),主操作码(最多3字节),由ModR/M和SIB字节(可选) 组成的地址格式描述符(如果需要的话),偏移量(可选)以及立即数(可选). 前缀 主操作码 ...翻译 2019-05-27 11:11:19 · 5934 阅读 · 0 评论 -
弹出一个MessageBox
\x55\x8B\xEC\x81\xEC\xC0\x00\x00\x00\x53\x56\x57\xFC\x68\x6A\x0A\x38\x1E\x68\x63\x89\xD1\x4F\x68\x32\x74\x91\x0C\x8B\xF4\x8D\x7E\xF4\x33\xDB\xB7\x04\x2B\xE3\x66\xBB\x33\x32\x53\x68\x75\x73\x65\x72\x5...原创 2019-05-18 15:17:56 · 1157 阅读 · 0 评论 -
向程序添加任意shellocde代码
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <windows.h>#define ADD_SIZE 1024//添加节区的大小#define SEC_NAME ".new"//添加节区的名字//这一段shellocde的作用就是弹出一个...原创 2019-05-29 20:00:59 · 270 阅读 · 0 评论