DLL注入之SHELLCODE数据转换

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <Windows.h> char shellcode[] = "\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42"
"\x08\x8b\x72\x20\x8b\x12\x80\x7e\x0c\x33\x75\xf2\x89\xc7\x03"
"\x78\x3c\x8b\x57\x78\x01\xc2\x8b\x7a\x20\x01\xc7\x31\xed\x8b"
"\x34\xaf\x01\xc6\x45\x81\x3e\x46\x61\x74\x61\x75\xf2\x81\x7e"
"\x08\x45\x78\x69\x74\x75\xe9\x8b\x7a\x24\x01\xc7\x66\x8b\x2c"
"\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf\xfc\x01\xc7\x68\x79\x74"
"\x65\x01\x68\x6b\x65\x6e\x42\x68\x20\x42\x72\x6f\x89\xe1\xfe"
"\x49\x0b\x31\xc0\x51\x50\xff\xd7"; int HextoBin(char* input)
{
FILE* fp;
if ((fp = fopen(input,"wb")) == NULL)
{
printf("[-]:HextoBin files:%s not find\r\n",input);
return ;
} fwrite(shellcode,,sizeof(shellcode) -,fp);
fclose(fp);
printf("[*]:Bin files suscess Convert,check Files:%s\r\n",input);
return ;
} int Bin2Hex(char* src,char* des)
{
FILE *fi,*fo;
unsigned int n;
int c; if ((fi = fopen(src,"rb")) == NULL)
{
cprintf("Can not find file %s",src);
return ;
} if ((fo=fopen(des,"w"))==NULL)
{
fclose(fi);
cprintf("Can not create file %s",des);
return ;
} n=;
while ()
{
c=fgetc(fi);
if (EOF==c) break;
n++;
if (==n) fprintf(fo, "\"\\x%02X",c);
else {
if (==n%) fprintf(fo,"\"\n\"\\x%02X",c);
else fprintf(fo, "\\x%02X",c);
}
}
fprintf(fo,"\"");
fcloseall();
cprintf("OK to Bin2Hex %u bytes.",n);
return ;
} void help(char* proc)
{
printf("[-]:%s Srcfile Descfile\r\n",proc);
printf("[-]:%s -hex shellcode.bin Convert.hex\r\n",proc);
printf("[-]:%s -bin Convert.bin\r\n",proc);
} //-------------------------------------------------------
int main(int argc,char *argv[])
{ if (argc == )
{
if (stricmp(argv[],"-hex") == )
{
char* src = argv[];
char* des = argv[];
Bin2Hex(src,des); }else
{
help(argv[]);
exit();
}
}else if (argc == )
{
if (stricmp(argv[],"-bin") == )
{
char* outfile = argv[];
HextoBin(outfile);
}else
{
help(argv[]);
exit();
}
}else
{
help(argv[]);
exit();
} return ;
}
详细参数说明:
当把shellcode写入代码shellcode变量的时候,输入-bin shellcode.bin 将生成二进制文件数据流。
当需要把二进制数据流转换成hex(16进制的时候)输入-hex shellcode.bin hex.hex
具体请看代码。这是博主自己的学习笔记,请勿喷。
DLL注入之SHELLCODE数据转换的更多相关文章
- 反射Dll注入分析
(源码作者:(HarmanySecurity)Stephen Fewer) 0x01 反射Dll注入的优点 1.反射Dll注入的主要优点是它没有以主机系统的任何方式(例如LoadLibrary和L ...
- 通过修改EIP寄存器实现32位程序的DLL注入
功能:通过修改EIP寄存器实现32位程序的DLL注入 <如果是64位 记得自己对应修改汇编代码部分> 原理:挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器 ...
- Ring3下的DLL注入(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程)
工具介绍及使用请移步:http://blog.csdn.net/sunflover454/article/details/50441014 本文首发在零日安全论坛:http://www.jmpoep. ...
- DLL注入
最近的项目涉及了软件破解方面的知识,记录一下. 将dll注入另一个进程. // Inject.cpp : Defines the exported functions for the DLL appl ...
- [转]Dll注入经典方法完整版
Pnig0s1992:算是复习了,最经典的教科书式的Dll注入. 总结一下基本的注入过程,分注入和卸载 注入Dll: 1,OpenProcess获得要注入进程的句柄 2,VirtualAllocEx在 ...
- 第22章 DLL注入和API拦截(2)
22.4 使用远程线程来注入DLL 22.4.1 概述 (1)远程线程注入是指一个进程在另一个进程中创建线程,然后载入我们编写的DLL,并执行该DLL代码的技术.其基本思路是通过CreateRemot ...
- 第22章 DLL注入和API拦截(1)
22.1 注入的一个例子(跨进程子类化窗口) ①子类化窗口可以改变窗口的行为,让发往该窗口的消息重新发到我们指定的过程来处理.但这种行为只能在本进程中(如A),对于从一个进程(如B)去子类化另一个进程 ...
- DLL注入之注册表
0x00 唠叨 编写本系列文章纯属为了系统学习DLL注入的方法,所以很多方法可能已经过时,希望各位看官勿喷.当然若有更好的方法,希望不腻赐教.若本文有任何错的地方,也希望各位指正.谢谢! 0x01 适 ...
- c++实现dll注入其它进程
DLL注入技术才具有强大的功能和使用性,同时简单易用,因为DLL中可以实现复杂的功能和很多的技术. 技术要点: 1.宿主进程调用LoadLibrary,就可以完成DLL的远程注入.可以通过Create ...
随机推荐
- 理解Global interpreter lock
Global interpreter lock (GIL) is a mechanism used in computer language interpreters to synchronize ...
- Ubuntu解压命令全览
1. Ubuntu解压命令全览.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName 注:tar是打包,不是压缩! .gz 解压1:g ...
- Windows下IIS+PHP 5.2的安装与配置
Windows下IIS+PHP 5.2的安装与配置 Windows下PHP的安装虽然简单,但如果不注意方法,仍然会让你头疼.此外,PHP 5.2版本与之前4.x版本也有一些不同,所以有必要记录一下 ...
- rabbitmq报错type
TypeError: exchange_declare() got an unexpected keyword argument 'type' 原因应该为pika版本不同导致的用法不同,解决方法为把t ...
- XDU 1056
解法一:简单搜索肯定TLE,只是单纯的想写一发搜索练练手 #include<cstdio> #include<cstring> #define maxn 1005 using ...
- POJ - 2699 The Maximum Number of Strong Kings (最大流+枚举)
题意:有n(n<=10)个选手,两两之间打比赛,共有n*(n-1)/2场比赛,赢一场得1分.给出每个人最后的得分.求有多少个定义如下的strong king:赢了所有得分比自己高的人或本身就是分 ...
- 【android】 中文URL资源找不到的问题
在博客园安卓客户端时,遇到过中文资源找不到的问题 背景:在使用PICASSO的时候,遇到过中文路径加载失败.比如 https://images0.cnblogs.com/news_topic/携程.j ...
- Lua 可控下标数组遍历
, , , , , , , , , , , } , , } local j = 1 while i <= #aaa do if bbb[j] == aaa[i] then -- 如果 b下标元素 ...
- C#中 哪些是值类型 哪些是引用类型
DateTime属于 结构类型,所以是 值类型 在 C#中 简单类型,结构类型,枚举类型是值类型:其余的:接口,类,字符串,数组,委托都是引用类型
- asp.net发送短信
public class SmsServiceManager { public static string Send(string PhoneNumber, out string sendNo) { ...