编程之修改文件修改时间的程序

作者在 2010-06-28 06:01:52 发布以下内容

 一次偶然挂马。用了好多IIS挂马,ISAPI,文件重定向挂马方法,不久后被管理员KILL。无奈只能用原始方法,因此,修改文件修改时间是必要的,管理员也因此用这个查。虽然海洋ASP木马上有这个功能,但经过测试,有的时候不行(原因不明,估计是权限问题),所以自己尝试写了这么个软件,代码如下:

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
#include "stdlib.h"
int main(int argc, char* argv[])
{  
        if (argc == 8)
        {
    FILETIME ft,ft1;
        SYSTEMTIME systime;
        int gxm,gxm1,gxm2,gxm3,gxm4,gxm5;
        gxm=atoi(argv[7]);
        gxm=gxm - 1;
    gxm1=atoi(argv[2]);
        gxm2=atoi(argv[3]);
        gxm3=atoi(argv[4]);
        gxm4=atoi(argv[5]);
        gxm5=atoi(argv[6]);
        systime.wYear = gxm1;
    systime.wMonth = gxm2;
    systime.wDay = gxm3;
    systime.wHour = gxm4;
    systime.wMinute = gxm5;
    systime.wSecond = gxm;                        //想要改变秒,必须要少一位
        SystemTimeToFileTime(&systime, &ft);
        LocalFileTimeToFileTime(&ft,&ft1);         //把时间转换UTC
        HANDLE hFile;
    hFile = CreateFile(argv[1], GENERIC_READ | GENERIC_WRITE,
                FILE_SHARE_READ| FILE_SHARE_WRITE,
                NULL,
                OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL,
                NULL);
        if (hFile== INVALID_HANDLE_VALUE)
        {
            printf("open't the file[!]...................................error\n");
        }
            SetFileTime(hFile, (LPFILETIME) NULL, (LPFILETIME) NULL, &ft1);
            CloseHandle(hFile);
    printf("changed[!]...................................OK\n");
        return 0;
        }
        printf("GXM修改文件最后修改日期工具\n");
        cout << "文件使用方法为:"<<endl;
        cout << "\t" << argv[0] << " path year month Day Hour Minute Second"<<endl;
        return 0;
}

  xp sp2 vc++6.0环境下编译成功,2k 2003 xp测试软件效果成功。需要运行程序权限:本菜在administrator下运行的,其他的没有测试。估计guest权限不行。

技术 | 阅读 1562 次
文章评论,共0条
游客请输入验证码
浏览1971025次