您现在的位置: 捷凌网安 >> 文章中心 >> 加密合并 >> 加壳技术 >> 正文
欺骗文件检测工具

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-2-17 1:02:19

新学脱壳,还在大门外转悠,写了这个小东东让大家乐乐。

IDFooler,用于欺骗文件检测工具,目前仅能伪装成VC和DELPHI。VC那个还行,DELPHI这个能骗过FI,骗不过PEID。以前坛子里有大大写过,我这个感觉更“傻瓜”一些。

在98下运行没问题,请各位在不同系统中测试。如果哪位有各种壳和编译器的特征码请赐教。


关键部分的源码:


代码:--------------------------------------------------------------------------------
void CPEDlg::OnApply() 
{
  CFile myFile;
  _IMAGE_DOS_HEADER  myDosHeader;
  _IMAGE_NT_HEADERS  myNtHeader;
  _IMAGE_SECTION_HEADER  mySectionHeader;
  int NumberOfSections,myBufSize;
  DWORD VOffset=0,VSize=0,ROffset=0,RSize=0,myVOffset=0,myROffset=0;
  DWORD OldEP,NewEP,Jmp;
  BYTE VCBuf[53]={
    0x55,0x8b,0xec,0x6a,0xff,0x68,0x00,0x00,
    0x00,0x00,0x68,0x00,0x00,0x00,0x00,0x64,
    0xa1,0x00,0x00,0x00,0x00,0x50,0x64,0x89,
    0x25,0x00,0x00,0x00,0x00,0x83,0xec,0x68,
    0x53,0x56,0x57,0x58,0x58,0x58,0x83,0xc4,
    0x68,0x58,0x67,0x64,0xa3,0x00,0x00,0x58,
    0x58,0x58,0x58,0x8b,0xe8
  };
  BYTE DELPHIBuf[10]={
    0x55,0x8b,0xec,0x83,0xc4,0xf4,0x83,0xc4,
    0x0c,0x50
  };
  BYTE myBuf[100]={0};

  CString m_bakname=m_filename+".bak";
  ::CopyFile((LPCTSTR)m_filename,(LPCTSTR)m_bakname,FALSE);  //backup
  if (!myFile.Open((LPCTSTR)m_filename,CFile::modeReadWrITe|CFile::typeBinary,NULL))
    return;
  myFile.Read(&myDosHeader,sizeof(_IMAGE_DOS_HEADER));
  if (myDosHeader.e_magic!=IMAGE_DOS_SIGNATURE)
  {
    AfxMessageBox("不是有效的MZ文件!",0,0);
    return;
  }
  myFile.Seek(myDosHeader.e_lfanew,CFile::begin);
  myFile.Read(&myNtHeader,sizeof(_IMAGE_NT_HEADERS));
  if (myNtHeader.Signature!=IMAGE_NT_SIGNATURE)
  {
    AfxMessageBox("不是有效的PE文件!",0,0);
    return;
  }
  NumberOfSections=myNtHeader.FileHeader.NumberOfSections;
  myNtHeader.FileHeader.NumberOfSections=NumberOfSections+1;
  myFile.Seek(myDosHeader.e_lfanew,CFile::begin);
  myFile.WrITe(&myNtHeader,sizeof(_IMAGE_NT_HEADERS));
  for (int i=0;i<NumberOfSections;i++)
  {
    myFile.Read(&mySectionHeader,sizeof(_IMAGE_SECTION_HEADER));
    if (mySectionHeader.VirtualAddress>VOffset)
    {
      VOffset=mySectionHeader.VirtualAddress;
      VSize=mySectionHeader.Misc.VirtualSize;
    }
    if (mySectionHeader.PointerToRawData>ROffset)
    {
      ROffset=mySectionHeader.PointerToRawData;
      RSize=mySectionHeader.SizeOfRawData;
    }
  }    //Get the Max Offset
  while (myVOffset<VOffset+VSize)
  {
    myVOffset+=0x1000;
  }
  while (myROffset<ROffset+RSize)
  {
    myROffset+=0x200;
  }
  for (i=0;i<8;i++) mySectionHeader.Name[i]=0;
  mySectionHeader.Name[0]=’R’;
  mySectionHeader.Name[1]=’o’;
  mySectionHeader.Name[2]=’B’;
  mySectionHeader.Name[3]=’a’;
  mySectionHeader.Misc.VirtualSize=0x1000;
  mySectionHeader.VirtualAddress=myVOffset;
  mySectionHeader.SizeOfRawData=0x200;
  mySectionHeader.PointerToRawData=myROffset;
  mySectionHeader.Characteristics=0xE0000020;
  myFile.WrITe(&mySectionHeader,sizeof(_IMAGE_SECTION_HEADER));
      //Add a New Section
  OldEP=myNtHeader.OptionalHeader.AddressOfEntryPoint;
  NewEP=myVOffset;
  myNtHeader.OptionalHeader.AddressOfEntryPoint=NewEP;
  myNtHeader.OptionalHeader.MajorLinkerVersion=6;
  myNtHeader.OptionalHeader.MinorLinkerVersion=0;  
  myNtHeader.OptionalHeader.SizeOfImage=myVOffset+0x1000;
  myFile.Seek(myDosHeader.e_lfanew,CFile::begin);
  myFile.WrITe(&myNtHeader,sizeof(_IMAGE_NT_HEADERS));
      //wrITe new EntryPoint
  swITch (type)
  {
  case TYPE_VC:
    myBufSize=sizeof(VCBuf);
    memcpy(myBuf,VCBuf,myBufSize);
    break;
  case TYPE_DELPHI:
    myBufSize=sizeof(DELPHIBuf);
    memcpy(myBuf,DELPHIBuf,sizeof(DELPHIBuf));
  }

  myFile.SetLength(myROffset+0x200);
  myFile.Seek(-0x200,CFile::end);
  myFile.WrITe(&myBuf,myBufSize);
  Jmp=OldEP-(NewEP+myBufSize)-5;
  BYTE JmpBuf=0xE9;
  myFile.WrITe(&JmpBuf,1);
  myFile.WrITe(&Jmp,sizeof(Jmp));
      //wrITe the KeyCode
  AfxMessageBox("Success!",MB_OK|MB_ICONINFORMATION,0);
}
--------------------------------------------------------------------------------


呵呵,没什么技术含量,贻笑大方了
  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章瑞星公司06月04日发布 每日计06-04
    普通文章陕西省地震局网站两次遭到"黑06-04
    普通文章谨防"Flash蛀虫"病毒 已感染06-04
    普通文章安全预警:“肉鸡猎人”抓肉06-04
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章微软:Safari浏览器存在安全06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章微软建议用户暂停用苹果Safa06-04
    普通文章台北世贸中心官网被挂马06-04
    普通文章电脑身份验证无处不在 让黑客06-04
     
    推荐文章
    推荐文章触目惊心 专家解读黑色产业链06-04
    推荐文章网络黑色产业链日渐成型 奥运06-04
    推荐文章保护DNS服务器十大技巧06-04
    推荐文章Vista在非常规状态下数据备份06-04
    推荐文章Linux IPv6环境下DNS服务器配05-01
    推荐文章信息安全:阻止SSH口令尝试工05-01
    推荐文章解决网内终端无法通信故障05-01
    推荐文章熟透各种特殊IP地址 将IP藏一05-01
    推荐文章IE用户减少,黑客盯上Safari 05-01
    推荐文章我国网络安全形势非常严峻 应04-30
     
    热点文章 
    普通文章灰鸽子伪装成MSN、QQ等常用图06-04
    普通文章中国黑客被疑导致美国2003年06-04
    普通文章电脑身份验证无处不在 让黑客06-04
    推荐文章触目惊心 专家解读黑色产业链06-04
    普通文章Windows系统用户摆脱黑客攻击06-04
    普通文章病毒导致输入法无法切换的处06-04
    普通文章Informix注入整理05-23
    普通文章Cookies的注入方法和原理05-23
    普通文章SQL注射修改难猜解的MD505-23
    普通文章黑客眼中的OpenSSL:强大的密05-05

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号