企业即时通讯 - Enterprise Instant Messenger

局域网聊天工具,文字讯息、文件发送、语音通讯、高清视频通讯、远程桌面控制。

用户操作
[即时聊天] [发私信] [加为好友]
FreeEIM StudioID:i_like_cpp
972409次访问,排名32,好友4人,关注者7人。
i_like_cpp的文章
原创 888 篇
翻译 4 篇
转载 69 篇
评论 1148 篇
FreeEIM Studio的公告
最近评论
ScanerKi:#include <stdio.h>

int asm(int s)
{
int t=0;
__asm
{
mov eax, DWORD PTR [ebp+8] ;把s的值传给eax
mov t, eax ;把eax的值传给t
}
printf("- %d……
li_delong:谢谢
li_delong:谢谢
li_delong:谢谢
XUETUJIAN:
文章分类
收藏
相册
EIM 截图
相关软件图片
PI的最精确值
FreeEIM 标签
FreeEIM华军下载
XP SP2 SDK
下载FreeEIM
盛天龙
飞鸽传书
不错的网站
CPPBLOG
局域网聊天
泡妞专家
用VC写Assembly代码(RSS)
百度的Blog(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 3个月的SHELLCODE研究成果-一个最简单的Shellcode收藏

新一篇: WINDOWS XP sp2 Platfrom SDK下载地址 | 旧一篇: [强]用VC++6.0编译调试汇编程序

坚持到底,永不放弃。我终于写了个小小的SHELLCODE啦。
就拿这个星期来说,我日思夜想,为什么我总写不出可以正确执行的SHELLCODE呢,非常郁闷,也整天板着脸想问题,差点吓着小MM同事了。
我本来ASSEMBLY基础不是很好,只懂得可怜的几个INSTRUCTIONS,写SHELLCODE时碰到了很多不认识的Instructions。还要上网差资料,有时真的是一头雾水。
我看了很多前辈写的SHELLCODE,也测试过,结果也是有的可以成功通过测试,有的不能。
我对这类SHELLCODE的问题很感兴趣,每天除了工作,就是研究怎么写SHELLCODE了。不懂就查,就问,GOOGLE不行,就BAIDU,BAIDU不行就YAHOO。
我几乎想从头开始学ASSEMBLY,但好像SHELLCODE的常用指令就那几个啦,像PUSH,MOV,SUB,ADD,INC,DEC,CALL,JMP,JE......
这些都比较好理解。于是我还是把精力集中在SHELLCODE的执行流程上。
先是反汇编一个简单的函数,然后是用指令写些简单的函数,由于ASSEMBLY基础差,碰到很多很尖的钉子,给我的打击不小,有是我会痛苦的问:“天啊,这样的事总发生在我身上。”但事实上,是自己基础差嘛。
付出是有回报的,只是时间问题。经过有多精彩可能要写几GB也写不完啦。
还是把研究成果和大家分享一下,本人什么也不懂,经常出错,望高手提出批评。感激不尽。欢迎交流 QQ:250947302

#include <stdio.h>
#include <windows.h>

void __declspec(naked)aaa(void)
{
 __asm{
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  push ebp
  mov ebp, esp
  sub esp, 08h
 }
 __asm
 {
  xor ecx, ecx
  mov byte ptr[ebp-08h], 'c'
  mov byte ptr[ebp-07h], 'm'
  mov byte ptr[ebp-06h], 'd'
  mov byte ptr[ebp-05h], cl
  lea eax, [ebp-08h]
  push eax
  mov edx, 77bf93c7h ;这是system函数的地址
  call edx
  pop eax
 }

 __asm
 {
  mov esp, ebp
  pop ebp
  ret
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
  _emit 0x90
 }
}

unsigned char aaaaa[]="\x55\x8B\xEC\x83\xEC\x08\x33\xC9\xC6\x45\xF8"
"\x63\xC6\x45\xF9\x6D\xC6\x45\xFA\x64\x88\x4D"
"\xFB\x8D\x45\xF8\x50\xBA\xC7\x93\xBF\x77\xFF"
"\xD2\x58\x8B\xE5\x5D\xC3";

void main()
{
 char *saa;
 HMODULE h=LoadLibrary("msvcrt.dll");
 ((void(*)(void))aaaaa)();
}

//////////////////////////////////////////////////////////////////////
unsigned char aaaaa[]="\x55\x8B\xEC\x83\xEC\x08\x33\xC9\xC6\x45\xF8"
"\x63\xC6\x45\xF9\x6D\xC6\x45\xFA\x64\x88\x4D"
"\xFB\x8D\x45\xF8\x50\xBA\xC7\x93\xBF\x77\xFF"
"\xD2\x58\x8B\xE5\x5D\xC3";
这段是用OLLYDBG 1.1调试得到的。 

发表于 @ 2006年10月28日 09:54:00|评论(loading...)|编辑

新一篇: WINDOWS XP sp2 Platfrom SDK下载地址 | 旧一篇: [强]用VC++6.0编译调试汇编程序

评论

#i_like_cpp 发表于2006-10-28 11:37:00  IP: 61.145.154.*
编译环境:
WIN XP SP2
VC 6.0 SP6

P4 2.4
DDR 1G
发表评论  


登录
Csdn Blog version 3.1a
Copyright © FreeEIM Studio