找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2118|回复: 0

从job文件里获取可执行路径

[复制链接]
发表于 2015-7-7 12:57:00 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

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

×
  1. typedef struct _JOB_FILE_HEADER
  2. {
  3. WORD ProductInfo;//System Product Info
  4. WORD FileVersion;//File Version
  5. GUID Guid;//UUID
  6. WORD PathOffset;//Application Name Offset
  7. WORD TriggerOffset;//Trigger Offset
  8. WORD ErrorRetryCount;//Error Retry Count
  9. WORD ErrorRetryInterval;//Error Retry Interval
  10. WORD IdleDeadline;
  11. WORD IdleWait;
  12. DWORD Priority;
  13. DWORD MaximumRuntime;
  14. DWORD ExitCode;
  15. DWORD Status;
  16. DWORD Flags;

  17. }JOB_FILE_HEADER,*PJOB_FILE_HEADER;

  18. bool GetPathFromJobFile(wstring& path)
  19. {
  20. HANDLE hTaskFile = CreateFile(_T("c:\\windows\\tasks\\At1.job"), GENERIC_READ, FILE_SHARE_READ |FILE_SHARE_WRITE,
  21.   NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  22. if(hTaskFile != INVALID_HANDLE_VALUE)
  23. {
  24.   DWORD FileSize = GetFileSize(hTaskFile, NULL);
  25.   BYTE* buf = new BYTE[FileSize];
  26.   PJOB_FILE_HEADER pjfh = (PJOB_FILE_HEADER)buf;
  27.   if(buf && (FileSize > sizeof(JOB_FILE_HEADER) + 8))
  28.   {
  29.    DWORD nread = 0;
  30.    ReadFile(hTaskFile, buf, FileSize, &nread, NULL);
  31.    if(nread && pjfh->PathOffset == 0x46)
  32.    {
  33.     path = (wchar_t*)(buf+pjfh->PathOffset);
  34.    }
  35.    
  36.   }
  37.   if(buf)
  38.    delete []buf;
  39.   CloseHandle(hTaskFile);
  40. }
  41. return false;
  42. }
复制代码
回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-12-23 02:34 , Processed in 0.028818 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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