rescoure的更换

上次我们手工注入了dll,这次我们要更换的是calc.exe的 图标。我们的目的是替换这边的图标。桌面图标(32x32)
PE文件资源表更换
这是总的位置
PE文件资源表更换

现在我们开始分析

1.
资源表IMAGE_RESOURCE_DIRECTORY_ENTRY
PE文件资源表更换
calc对应的位置
PE文件资源表更换
可见有8个IMAGE_RESOURCE_DIRECTORY_ENTRY
PE文件资源表更换
再根据第一个联合体的最高为判断:

  1. 第一个联合体的最高位为0,也就是说NameIsString为0,此时代表已知的类型,也就说name会起作用
    PE文件资源表更换
  2. 第一个联合体的最高位为1,也就是说NameIsString为1,如果资源是未知的,这种资源属于字符串作为资源标识, Name就不会起作用了,NameOffset会指向IMAGE_RESOUCE_DIR_STRING_U的位置。

该程序中为:

PE文件资源表更换

以第一个为例(偏移0x50),根据第二个联合体最高为1仍为IMAGE_RESOURCE_DIRECTORY_ENTRY结构
PE文件资源表更换
PE文件资源表更换

根据第七个偏移0x230继续索引
PE文件资源表更换
最后根据偏移0x470跳转到IMAGE_RESOURCE_DATA_ENTRY结构体
PE文件资源表更换
PE文件资源表更换


文件RVA为0x1AC28,对应roffset位置(0x18228),大小0x10A8
打开更换的icon图片,从0x16开始将文件到尾部全部写入到对应位置,因为之前的字节应该是描述该图片的格式
PE文件资源表更换
PE文件资源表更换

因为原先的图标就是32x32的,覆盖的图片也是必须是32x32的
PE文件资源表更换

成功!

相关文章:

  • 2021-05-19
  • 2022-03-02
  • 2022-12-23
  • 2022-01-02
  • 2021-08-05
  • 2022-12-23
  • 2021-07-24
  • 2021-05-17
猜你喜欢
  • 2022-02-04
  • 2021-10-22
  • 2021-11-25
  • 2022-12-23
  • 2021-11-17
  • 2021-07-08
  • 2021-10-19
相关资源
相似解决方案