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 ...
随机推荐
- 修改计算机名后SQLServer无法使用windows账号登录
USE master GO EXEC sp_configure'allow updates',1 RECONFIGURE WITH OVERRIDE -- 设置两个变量 DEC ...
- 转载:futex同步机制详解
在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序", ...
- PHPcms v9 get标签sql 语句limit无效问题的解决方法
get标签非常好用,自定义模型后get几乎变成万能的了.但是PHPCMS升级到V9后,把2008的很多功能都去掉了,比如get标签中,在后面自动添加了一个LIMIT 0,20,这样你即使写了num=' ...
- 《你的SSD可以用100年,你造吗?》总结
来自 http://www.ssdfans.com/?p=1778 上图是闪存的一个基本存储单元,由一种类NMOS的双层浮空栅 (Floating Gate) MOS管组成,用以存储一个bit(SLC ...
- 工作笔记——限定input上传文件对话框中能选取的文件的格式
原文:http://www.dengzhr.com/frontend/1059 input[file]标签的accept属性可用于指定上传文件的 MIME类型 . 例如,想要实现默认上传图片文件的代码 ...
- python全栈开发从入门到放弃之装饰器函数
什么是装饰器#1 开放封闭原则:对扩展是开放的,对修改是封闭的#2 装饰器本身可以是任意可调用对象,被装饰的对象也可以是任意可调用对象#3 目的:''' 在遵循 1. 不修改被装饰对象的源代码 2. ...
- spring mvc 全局处理异常
spring框架支持很多种全局处理异常的方式 一.Spring MVC处理异常有4种方式: (1)使用Spring-MVC提供的SimpleMappingExceptionResolver: (2)实 ...
- iOS 提升代码的安全性,可以做哪些措施???
希望能尽量防止别人 反编译你的代码: 目前苹果审核规则可知,苹果官方是不希望你使用代码混淆的...如果发现了你用代码混淆,甚至会勒令你修改你的代码,否则下一次审核会直接移除你的app…尤其是跑脚本的那 ...
- Web Servlet的体系架构
Servlet为根接口,里面有5个方法,init() servlet初始化,将ServletConfig作为参数传入,service() 响应请求,destroy() 销毁servlet,getSer ...
- jvm2
垃圾回收器的实现: 1.让用户都暂停,不再产生垃圾,就去收集垃圾.新生代用复制算法清理垃圾,老生代用标记整理算法搜集垃圾. 优秀的算法:服务端默认是CMS收集器. %..jvm案例演示 内存: Jco ...