能力值:
( LV2,RANK:10 )
2 楼
copyfile 拷贝自身到启动目录不就是了
能力值:
( LV2,RANK:10 )
4 楼
winexec('reg -add hklm\xxx\run ')
能力值:
( LV3,RANK:30 )
5 楼
对于WinXP下自启动,一般有几个方法:
1.对于文件自启动一般有下面两个目录,
C:\Documents and Settings\All Users\「开始」菜单\程序\启动
C:\Documents and Settings\当前用户名\「开始」菜单\程序\启动
把Loader拷贝到这两个目录下就行了
2.对于服务自启动,用相关API把Loader设为服务程序就可以了。
3.对于注册表自启动,注册表中有很多的自启动目录,在其中一个目录下新建一个子键,指向自己的Loader就行了。
4.利用windows的自动播放功能实现自启动。在C盘,D盘等任一盘符根目录下新建一个autorun.inf,通过自动播放实现自启动
5.感染系统文件加载Loader实现自启动。比如常见的感染winlogon.exe explorer.exe svchost.exe等。这种技术比较难,目前我不会。
6.修改硬盘主引导区BIOS实现自启动。超级复杂的技术,一旦会了则无视还原精灵等安全软件,立马晋升为驱动大牛。这个我也不会。
由于版面和时间关系,我只贴一段服务创建Loader代码,纯手工编写,如有错误之处请指教
;服务自启动添加程序示例
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
lpServiceName db 'ExampleServer',0 ;服务名
lpServiceInfo db 'a example service program',0 ;服务说明
lpServicePath db 'C:\Example.exe',0 ;服务程序(Loader)路径
ts db '提示',0
Create_Success db '服务创建成功!',0
Create_False db '服务创建失败',0
.data?
scMgr dd ?
service dd ?
.code
start:
invoke OpenSCManager,NULL,NULL,SC_MANAGER_CREATE_SERVICE ;打开SCM服务管理器
.if eax ;如果调用成功
mov dword ptr scMgr, eax ;保存句柄
invoke CreateService, scMgr,\ ;创建服务
lpServiceName,\
lpServiceInfo,\
SERVICE_ALL_ACCESS,\
SERVICE_WIN32_OWN_PROCESS,\
SERVICE_AUTO_START,\
SERVICE_ERROR_NORMAL,\
lpServicePath,0,0,0,0,0
.if eax ;如果创建成功
mov dword ptr service, eax ;保存句柄
invoke MessageBox, NULL, addr Create_Success, addr ts, MB_OK
invoke CloseServiceHandle, service ;销毁句柄
.else ;创建服务失败
invoke MessageBox, NULL, addr Create_False, addr ts, MB_OK
.endif
invoke CloseServiceHandle, scMgr ;销毁句柄
.else ;创建服务失败
invoke MessageBox, NULL, addr Create_False, addr ts, MB_OK
.endif
invoke ExitProcess, 0
end start
能力值:
( LV3,RANK:30 )
6 楼
这个在NTFS系统上貌似还需要system权限,,Administrator权限都不行,,刚才写掉了
能力值:
( LV2,RANK:10 )
7 楼
拷贝自身到启动目录不就是了