当前位置: 首页 > news >正文

木马彩衣的原理和代码示例

木马彩衣的实现原理,也就是在程序里面加多一个Section,并且把入口点指向我们新添加的Section,然后再在我们的Section的代码里加上一个jmp,jmp到真正的入口点.这样,一些识壳软件,它在识别入口点代码时,就跑到我们新加的Section,看到里面的代码是VC6或是Delphi的代码也就认为是VC6或是Delphi的程序了.
下面是我写的一个代码,修改自"Fi7ke"老大的Delphi代码,原文可以查看http://blog.csdn.net/hnxyy/archive/2005/11/16/530694.aspx


DWORD JMPOFF=43;

char OEPCODE[]={0x55, 0x8B, 0xEC, 0x6A, 0xFF, 0x68, 0x2A, 0x2C, 0x0A, 0x00, 0x68, 0x38,
    0x90, 0x0D, 0x00, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89,
    0x25, 0x00, 0x00, 0x00, 0x00, 0x58, 0x64, 0xA3, 0x00, 0x00, 0x00, 0x00,
    0x58, 0x58, 0x58, 0x58, 0x8B, 0xE8, 0xB8, 
  0x00, 0x10, 0x40, 0x00, //此处的DWORD是跳转的地址
  0xFF,0xE0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00};

//加壳
void Encrypt(LPCSTR szFileName)
{
  //var
 
  
  IMAGE_DOS_HEADER    DosHeader;
  IMAGE_NT_HEADERS    PEHeader;
  IMAGE_SECTION_HEADER  SectionHeader;
  //新添加的Section
  IMAGE_SECTION_HEADER  MySectionHeader;
  //入口点地址
  DWORD          AddressOfEntryPoint;
  //文件流
  CFile          PEFile;
  
  //begin
  
  
  try
  {
    PEFile.Open(szFileName,CFile::modeReadWrite);
    //读取DOS头
    PEFile.SeekToBegin();
    PEFile.Read(&DosHeader,sizeof(DosHeader));
    //读取NT头
    PEFile.Seek(DosHeader.e_lfanew,CFile::begin);
    PEFile.Read(&PEHeader,sizeof(PEHeader));
    //读取Section
    PEFile.Seek(sizeof(IMAGE_SECTION_HEADER)*(PEHeader.FileHeader.NumberOfSections-1),CFile::current);
    PEFile.Read(&SectionHeader,sizeof(IMAGE_SECTION_HEADER));
    
    strncpy((LPSTR)MySectionHeader.Name,"Fi7ke/0",6);
    MySectionHeader.VirtualAddress = PEHeader.OptionalHeader.SizeOfImage;
    MySectionHeader.Misc.VirtualSize = 0x200;
    MySectionHeader.SizeOfRawData = (MySectionHeader.VirtualAddress / //div
      PEHeader.OptionalHeader.FileAlignment + 1) * PEHeader.OptionalHeader.FileAlignment -
      PEHeader.OptionalHeader.SizeOfImage;
    MySectionHeader.PointerToRawData =SectionHeader.SizeOfRawData + SectionHeader.PointerToRawData;
    MySectionHeader.Characteristics = 0x60000020;
    
    PEHeader.FileHeader.NumberOfSections++;
    PEFile.Write(&MySectionHeader, sizeof(MySectionHeader));
    PEFile.Seek(DosHeader.e_lfanew, CFile::begin);
    
    AddressOfEntryPoint = PEHeader.OptionalHeader.AddressOfEntryPoint;
    PEHeader.OptionalHeader.AddressOfEntryPoint =MySectionHeader.VirtualAddress;
    PEHeader.OptionalHeader.MajorLinkerVersion = 6;
    PEHeader.OptionalHeader.MinorLinkerVersion = 0;
    
    AddressOfEntryPoint = AddressOfEntryPoint + PEHeader.OptionalHeader.ImageBase;
           
    __asm
    {
      PUSHAD
      LEA eax, OEPCODE        //将OEPCODE的地址交给寄存器
      ADD eax, JMPOFF          //添加JMPOFF值给寄存器
      MOV edx, AddressOfEntryPoint  //转移指令,相当于付值语句,左边给右边
               
      MOV DWORD ptr [eax], edx    //同上
      POPAD
      
    }
        
           
    PEHeader.OptionalHeader.SizeOfImage =PEHeader.OptionalHeader.SizeOfImage + MySectionHeader.Misc.VirtualSize;
  
    PEFile.Write(&PEHeader, sizeof(PEHeader));       
    PEFile.SeekToEnd();
    PEFile.Write(OEPCODE, MySectionHeader.Misc.VirtualSize);
    PEFile.Close();
  }
  catch (...) 
  {
    PEFile.Close();
  }
}


[CODE]

这个是编译后的程序,放在网络硬盘上.使用时,直接点"加壳"就行了.
http://free.ys168.com:8000/ys168up/D2/?Mini木马彩衣.exey70z71fdp9f9b0b1z95bi2b2b2b2b0fq9fd1b4f9b0f6e01e20e01e24b1b1f2b0b1f9flc4fd7z

http://www.xdnf.cn/news/843931.html

相关文章:

  • VBA:VBA常用小代码合集
  • Win32中调用其他应用程序的方法(函数)winexec,shellexecute ,createprocess
  • JS弹出确认、取消对话框
  • PT100温度采集
  • 《linux命令行和shell脚本编程宝典》学习笔记1(第一章至第六章)
  • HTTP知识
  • Android高级架构进阶之数据传输与序列化
  • 现今最强引擎对比!虚幻3 vs CE2 vs 寒霜2.0
  • 我是开发顶贴机的qq是525—093-551十二年工作经验
  • (AVG)Antivirus 如何卸载
  • java uniqueresult_Hibernate之Query接口的uniqueResult()方法详解
  • 基于Android的小说在线阅读器软件APP
  • 企业级大数据安全架构(八)FreeIPA高可用部署
  • android+4.2系统,Android 4.2系统全面解析
  • asp毕业设计——基于asp+access的教师信息管理系统设计与实现(毕业论文+程序源码)——教师信息管理系统
  • final swfplayer安卓10/11/12上都能播放flash播放器源码
  • 网站建设软件开发小程序制作|企业APP定制
  • 腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程
  • 利用linux BT5来破解无线 破解无线
  • Android 10.0 systemui状态栏充电状态下电池电量100%时显示闪电图标问题解决
  • R语言基本操作
  • 连连看外挂制作 —— 无限时间(2)
  • 2024年AI赚钱全攻略:这些方法,让你的月收入翻几番!
  • Now in Android | 12 月刊 · 2019
  • 利用requests-BeautifulSoupJson 爬取股票代码、名称、当日开收盘价格
  • 在ROS2-foxy环境中配置nooploop-linktrack
  • Android开发新手入门教程,积累总结
  • PostScript语言教程(六、图形变换)
  • 【安卓】Android开发入门 你的第一个apk应用
  • 睡眠与养生