标签:padding TE int read ret abs ros return --
#include "stdafx.h" //需注意代码的长度,中间call函数的话需要特别注意是否完整了。在OD中查看 char bShellcode[] = "\x83\xEC\x20\xEB\x0B\x55\x73\x65\x72\x33\x32\x2E\x64\x6C\x6C\x00\xE8\x00\x00\x00\x00\x5B" "\xE8\x31\x00\x00\x00\x50\x68\x87\x32\xD8\xC0\xE8\x92\x00\x00\x00\x56\x8B\xF0\x8D\x43\xF0" "\x6A\x00\x6A\x00\x50\xFF\xD6\x50\x68\x6A\x0A\x38\x1E\xE8\x7A\x00\x00\x00\x6A\x00\x6A\x00" "\x6A\x00\x6A\x00\xFF\xD0\x8B\xE5\x5D\xC3\x55\x8B\xEC\x83\xEC\x0C\x64\xA1\x30\x00\x00\x00" "\x8B\x40\x0C\x8B\x40\x0C\x8B\x00\x8B\x00\x3E\x8B\x40\x18\x8B\xE5\x5D\xC3\x55\x8B\xEC\x83" "\xEC\x04\xC7\x45\xFC\x00\x00\x00\x00\x53\x51\x52\x8B\x75\x08\x33\xC9\x33\xC0\x8A\x04\x0E" "\x84\xC0\x74\x16\x8B\x5D\xFC\xC1\xE3\x19\x8B\x55\xFC\xC1\xEA\x07\x0B\xDA\x03\xD8\x89\x5D" "\xFC\x41\xEB\xE3\x8B\x5D\x0C\x8B\x55\xFC\x33\xC0\x3B\xDA\x75\x05\xB8\x01\x00\x00\x00\x5A" "\x59\x5B\x8B\xE5\x5D\xC2\x08\x00\x55\x8B\xEC\x83\xEC\x0C\x52\x8B\x55\x0C\x8B\x72\x3C\x8D" "\x34\x32\x8B\x76\x78\x8D\x34\x32\x8B\x7E\x1C\x8D\x3C\x3A\x89\x7D\xFC\x8B\x7E\x20\x8D\x3C" "\x3A\x89\x7D\xF8\x8B\x7E\x24\x8D\x3C\x3A\x89\x7D\xF4\x33\xC9\xEB\x01\x41\x8B\x75\xF8\x8B" "\x34\x8E\x8B\x55\x0C\x8D\x34\x32\xFF\x75\x08\x56\xE8\x67\xFF\xFF\xFF\x85\xC0\x74\xE6\x8B" "\x75\xF4\x33\xFF\x66\x8B\x3C\x4E\x8B\x55\xFC\x8B\x34\xBA\x8B\x55\x0C\x8D\x04\x32\x5A\x8B" "\xE5\x5D\xC2\x08\x00"; int main() { __asm { LEA EAX, bShellcode; PUSH EAX; RET; } return 0; }
//********************************************** //哈希摘要算法(取摘要) //参数为 函数名字符串 //返回值:哈希值 //********************************************* int Hash_GetDigest(char* strFunName) { unsigned int nDigest = 0; while (*strFunName) { //左移25位,右移7位,按位或 nDigest = ((nDigest << 25) | (nDigest >> 7)); nDigest = nDigest + *strFunName; strFunName++; } return nDigest; } int hash_Loadlibrary = Hash_GetDigest("LoadLibraryExA");//0xc0d83287 int hash_MessBox = Hash_GetDigest("MessageBoxA");//0x1e380a6a
标签:padding TE int read ret abs ros return --
原文地址:https://www.cnblogs.com/by-clark/p/9129573.html