好久没写博客了,今天终于搞出了第一个shellcode,以此mark一下。

#include "stdafx.h"
#include <Windows.h>
#include <tchar.h> int _tmain(int argc, _TCHAR* argv[]) {
HMODULE hm = LoadLibrary(_T("kernel32.dll"));
int addr = (int)GetProcAddress(hm, "WinExec");
int exitaddr = (int)GetProcAddress(hm, "ExitProcess");
printf("the address is %2x\r\nthe exitaddris %2x", addr, exitaddr); char buf[] = {
"\x33\xc0" //xor eax,eax
"\x50" //push eax
"\xb8\x2e\x65\x78\x65" //mov eax,0x6578652e
"\x50" //push eax
"\xb8\x63\x61\x6c\x63" //mov eax,0x636c6163
"\x50" //push eax
"\x89\xe0" //mov eax,esp
"\x6a\x05" //push 0x5
"\x50" //push eax
"\xb8\xa0\xf8\x0a\x77" //mov eax,770af8a0
"\xff\xd0" //call eax
"\x33\xc0" // xor eax, eax
"\x50" //push eax
"\xb8\xb0\xad\x07\x77" //mov eax,7707adb0
"\xff\xd0" //call eax
};
/*
char buf[] = {
0x33, 0xc0, //xor eax,eax
0x50 , //push eax
0xb8, 0x2e, 0x65, 0x78, 0x65, //mov eax,0x6578652e
0x50, //push eax
0xb8, 0x63, 0x61, 0x6c, 0x63, //mov eax,0x636c6163
0x50, //push eax
0x89, 0xe0, //mov eax,esp
0x6a, 0x05, //push 0x5
0x50, //push eax
0xb8, 0xa0, 0xf8, 0x0a, 0x77, //mov eax,770af8a0
0xff, 0xd0, //call eax
0x33, 0xc0, // xor eax, eax
0x50, //push eax
0xb8, 0xb0, 0xad, 0x07, 0x77, //mov eax,7707adb0
0xff, 0xd0 //call eax
};
*/
__asm{
lea ecx, buf
call ecx
} /* __asm{
xor eax, eax
push eax
mov eax, 0x6578652E
push eax
mov eax, 0x636C6163
push eax
mov eax, esp
push 5
push eax
mov eax, 0x770af8a0
call eax
}
*/
//WinExec("calc.exe", SW_SHOW);
ExitProcess(0);
return 0; }

[mark] first shellcode的更多相关文章

  1. java.io.IOException: mark/reset not supported

    java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...

  2. 逆向工程学习第二天--动手开发自己的第一个shellcode

    一个简单的c语言添加windows管理员账号的小程序,之前在渗透的时候经常用到,现在拿它来做自己的第一个shellcode. C代码: #pragma comment(lib, "netap ...

  3. [mark] 使用Sublime Text 2时如何将Tab配置为4个空格

    在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: ht ...

  4. 【原创】内核ShellCode注入的一种方法

    标 题: [原创]内核ShellCode注入的一种方法 作 者: organic 时 间: 2013-05-04,04:34:08 链 接: http://bbs.pediy.com/showthre ...

  5. 【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取

    其实分在逆向篇不太合适,因为并没有逆向什么程序. 在http://www.exploit-db.com/exploits/28996/上看到这么一段最简单的ShellCode,其中的技术也是比较常见的 ...

  6. 特邀美国EMC实战专家Mark来华授课

    “轻松搞定EMC-PCB和系统设计”课程介绍 本次课程特邀美国EMC领域权威专家Mark Montrose主讲,将涵盖满足产品电磁兼容性和信号完整性的基本原理.课程涉及多个领域,不仅仅针对PCB设计, ...

  7. 逆向工程学习第三天--另外一个ShellCode

    上周自己打造的添加用户的shellcode太长,不过当时主要目的是为了锻炼手动asm,熟悉一些复杂的参数类型如何手动进行构造,然后通过堆栈传递. 接下来就打造一个弹计算器的shellcode来进行接下 ...

  8. 如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?

    当把某个文件“Mark as Plain Text”时,该文件被当做普通文本,就不会有“代码自动完成提示”功能,如下图所示: 但是呢,右键菜单中貌似没有 相应的撤销 操作, 即使是把它删除,再新建一个 ...

  9. vim - mark

    Using markshttp://vim.wikia.com/wiki/Using_marks1. There is no visible indication of where marks are ...

随机推荐

  1. ansible学习之路

    ansible安装

  2. Java 反射在实际开发中的应用

    运行时类型识别(RTTI, Run-Time Type Information)是Java中非常有用的机制,在java中,有两种RTTI的方式,一种是传统的,即假设在编译时已经知道了所有的类型:还有一 ...

  3. 关于EF 通用增删改查的封装

    1.  Entity Framework是Microsoft的ORM框架,随着 Entity Framework 不断的完善强化已经到达了EF 6.0+ 还是非常的完善的,目前使用的比例相对于其他OR ...

  4. 论Activity及启动模式,Fragment,Service的使用以及生命周期

    Activity: 这是我总结出来的,介于Activity生命周期相对较多,我在Google官方的生命周期图上又加了几个常用的,便于大家理解 对于ACtivity,先说说启动模式(ps:复制党去死吧, ...

  5. js中的数组排序

    js数组冒泡排序,快速排序的原理以及实现   冒泡排序: 随便从数组中拿一位数和后一位比较,如果是想从小到大排序,那么就把小的那一位放到前面,大的放在后面,简单来说就是交换它们的位置,如此反复的交换位 ...

  6. 关于PHP魔术方法__call的一点小发现

    好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ...

  7. LFCP

    场景:总结LFCP项目开发中遇到的问题! 1 运营支撑 项目结构: 1.1 hessian配置 服务端实现: 客户端调用: 1.2 问题排查 之前一段时间,运营支撑项目能够正常运行,中间有其它事情要做 ...

  8. Solr-Centos7 安装部署solr-5.5.4

    一 下载安装所需文件 http://archive.apache.org/dist/lucene/solr/ solr-5.5.4.tgz http://archive.apache.org/dist ...

  9. 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

  10. Linux(5)压缩和归档管理

    压缩和归档管理 tar :归档管理 此命令可以把一系列文件归档到一个大文件中, 使用格式: -v :显示进度 -f :指定文件名称, f后面一定是.tar文件, 此参数必须放在选项最后 -t :列出文 ...