• 恶意代码实验2


    恶意代码实验2

    手工修改PE文件,使样例程序体积尽可能小(784B)

    Ⅰ.实验步骤

    1.目标思路

    将text节、radta节、data节的内容放到节表之后,即把0x400、0x600、0x800的内容放到0x230之后

    image-20210429081813360

    图1.1

    2.将text节移动到节表之后

    将text节0x400移动到0x230的位置,留了16字节的0x00主要是怕出错,理论上放到0x220问题也应该不大,需要修改的位置有节再磁盘文件中所占的空间大小(其实不改也行),节在文件中所处的位置,即0x1B8的4字节和0x1BC的4字节

    image-20210429083508531

    图1.2

    0x230指向的是文件中代码节存储的位置,0x370是节的大小,因为向前移动了0x170字节,0x200+0x170=0x370,

    实际上这时候还需要修改文件的入口位置为0x401030,但是因为前面都是一些对本代码无影响的指令,所以不会影响正常运行,如下图所示:

    image-20210429084556372

    图1.3

    原因是文件中的对齐粒度是0x200,内存中的对齐粒度是0x1000,将文件中的每0x200字节装载到内存中时不能智能地区分代码节和非代码节,因此在0x401000位置存储的时文件中的0x200到0x400的0x200字节的内容

    3.将rdata节移动到text节后面(难)

    将rdata节0x600的位置移动到0x260的位置,因为text节的后面有一些0x00,感觉问题不大,需要将整个引入目录表修改(除了函数名字不改),还需要修改数据目录表中的导入表,还需要修改前一个text节中的汇编代码(因为要找到函数),还要修改rdata节的内容

    image-20210429090550725

    图1.4

    数据目录表中导入表的指向文件中的位置需要改为0x1070,即文件中的0x270,即引入目录表的入口,然后将引入目录表重构,0x20B4指向文件中的0x20BC,0x20BC指向MessageBoxA函数,其他的项以此类推,修改rdata节表中的节在文件中的所处位置修改为0x260,大小无所谓,最后修改汇编代码为0x00402068,和0x00402060

    原因是rdata节在内存中装载的位置为0x402000,所以上述修改的偏移(除了导入表的位置)都有一个0x2000的偏移,再加上其在文件中相对于0x200的偏移即可算出内存中的位置

    image-20210429092456442

    图1.5

    4.将data节移动到rdata节后面

    将data节0x800的位置移动到0x300的位置,因为前面的那个动态库的名字的字符串需要0x00结尾,就直接空一行算了

    image-20210429092922386

    图1.6

    修改的内容就是data节表中的节在文件磁盘中所处的位置为0x300,将data节的内容复制过来,将text节中改为0x00403100,和0x0040310B,这两个位置是data字符在内存中的位置(改成前面的也没问题)

    image-20210429093731574

    图1.7

    5.将data节后面的内容全部删掉

    正常运行,好耶!

    image-20210429094005327

    图1.8

    源程序链接提取码:5oon

    Ⅱ.注意事项

    1.建议使用010Editor修改

    只需要使用010Editor和olldbg两个软件即可完成实验,在win10环境下即可,010Editor支持对文件复制,粘贴,删除,增加,修改过程中会经常出错,需要经常在olldbg中调试

    2.按步骤进行修改,注意保存

    防止出现重大错误从头再来

    3.注意复制粘贴方法

    复制了多少字节内容,就要选中多少内容粘贴,不然会删除一些内容

    Ⅲ.研究其他的程序(失败)

    1.测试程序使用(X64环境不行)

    image-20210429100923037

    图3.1

    程序链接提取码:zc1l

    2.原文件

    image-20210429101036986

    图3.2

    没看懂是怎么跑起来的,只能小改一下显示的字符,原博客地址:

    [手工打造超小PE文件 作者:Sunline]((19条消息) 手工打造超小PE文件_Dustfly的专栏-CSDN博客)

  • 相关阅读:
    安全公司
    HTML5 Security Cheatsheet
    渗透1
    dos其他
    Ddos 类别
    python之控制条件if语句
    python编码规范(二)——空行,换行,缩进
    python编码规范(一)——空格的使用
    python入门基础
    网页模板的自定义
  • 原文地址:https://www.cnblogs.com/wqnmlkb/p/14717089.html
Copyright © 2020-2023  润新知