c和汇编混合编程----shellcode----弹出计算器
生活随笔
收集整理的這篇文章主要介紹了
c和汇编混合编程----shellcode----弹出计算器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先用c和匯編混合編程成功彈出計算器(在VC++里運行)
#include "stdio.h" #include "windows.h"int main(int argc, char* argv[]) {printf("begin\n");HINSTANCE libHandle;char *dll="kernel32.dll";libHandle=LoadLibrary(dll);{sub esp,0x454xor ebx,ebxpush ebxmov eax,0x6578652epush eaxmov eax,0x636c6163push eaxmov eax,esppush 5push eaxcall dword ptr [WinExec]mov esp,0x450}return 0;}設置斷點,反匯編
將程序的反匯編復制到一個文本編輯器里,將上面匯編的機器碼找出來
在機器碼前面加上\x,放到一個字符數據里
只要取匯編的機器碼就行,c的不用管
將上面的程序改成
#include "stdio.h" #include "windows.h"char shellcode[]="\x81\xEC\x54\x04\x00\x00\x33\xDB\x53\xB8\x2E\x65\x78\x65\x50\xB8\x63\x61\x6C\x63\x50\x8B\xC4\x6A\x05\x50\xFF\x15\x14\xA2\x42\x00\xBC\x50\x04\x00\x00"; int main(int argc, char* argv[]) {printf("begin\n");HINSTANCE libHandle;char *dll="kernel32.dll";libHandle=LoadLibrary(dll);__asm{lea eax,shellcodecall eax}return 0;}在運行,也能彈出計算器
總結
以上是生活随笔為你收集整理的c和汇编混合编程----shellcode----弹出计算器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c和汇编混合编程----main的反汇编
- 下一篇: 各深渊门票(破魔石)分别要多少张邀请函兑