by: 冰狐浪子 from:http://www.icyfoxlovelace.com/
既然有兄弟需要原代码,我也就贴出来算拉,免得一个个发!,使用请参照“修改文件时间,保护asp木马”
修改文件时间例子.asm
.386
.model flat, stdcall
option casemap :none
;[转载请保留出处]
;作者:冰狐浪子 [http://www.icyfoxlovelace.com]
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include kernel32.inc
includelib kernel32.lib
.code
_TimeC proc @_szFileName1,@_szFileName2
local @hFile ;文件句柄
local @Crtime: FILETIME
local @Latime: FILETIME
local @Lwtime: FILETIME
;打开文件
invoke CreateFile, @_szFileName1, GENERIC_READ, FILE_SHARE_READ or \
FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0
cmp eax,INVALID_HANDLE_VALUE
je _@exit0
mov @hFile,eax ;复制文件句柄
invoke GetFileTime,@hFile,addr @Crtime,addr @Latime,addr @Lwtime
invoke CloseHandle,@hFile ;关闭文件
invoke CreateFile, @_szFileName2,GENERIC_WRITE, FILE_SHARE_READ or \
FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0
cmp eax,INVALID_HANDLE_VALUE
je _@exit0
mov @hFile,eax ;复制文件句柄
invoke SetFileTime,@hFile,addr @Crtime,addr @Latime,addr @Lwtime
invoke CloseHandle,@hFile ;关闭文件
_@exit0:
ret
_TimeC endp
start:
invoke GetCommandLine
mov esi,eax
cld
_argc_loop:
lodsb
or al,al
jz _argc_end
cmp al,' '
jz _argc_end
cmp al,'"'
jnz _argc_loop
@@:
lodsb
or al,al
jz _argc_end
cmp al,'"'
jnz @B
jmp _argc_loop
_argc_end:
mov edi,esi
cmp byte ptr [esi],'"'
jnz @F
inc edi
@@:
_argc_loop1:
lodsb
or al,al
jz _argc_end1
cmp al,' '
jz _argc_end1
cmp al,'"'
jnz _argc_loop1
@@:
lodsb
or al,al
jz _argc_end1
cmp al,'"'
jnz @B
jmp _argc_loop1
_argc_end1:
cmp byte ptr [esi-2],'"'
jnz @F
mov byte ptr [esi-2],0
@@:
mov byte ptr [esi-1],0
invoke _TimeC,edi,esi
ret
end start