在空白区填充代码

本文介绍了如何使用WinHex检查`notepade.exe`文件,通过分析节表和PE/DOS头部结构,确定添加新节表的位置,并利用汇编技巧实现简单的弹框功能。作者详细展示了计算有效地址和跳跃目标的步骤。
摘要由CSDN通过智能技术生成

首先notepade.exe文件位置在c盘下的windows文件夹中

用winhex打开

先判断节表末尾到第一个节之间是否够80字节:可选PE头中SizeOfHeaders值为0x1000;标准PE头中SizeOfOptionalHeader值为0xE0,NumberOfSections值为0x4;DOS头中e_lfanew值为0xE0。通过0x1000 - (0xE0 + 0x4 + 0x14 + 0xE0 + 0x4 * 0x28)= 0xD88,因为0xD88 > 0x50,所以可以存下新增节表

构建最简单弹框

 

massagebox(0,0,0,0)

76E2A020 user32.MessageBoxA

E8下一行7B55

X = 真正要跳转的地址 - E8这条指令的下一行地址

X = 0x76E2A020 - (7B55 -400(第一个节表的初始值)+1000(拉伸后位置)+100000(imagebase的基址)) =75E2 18CB(小端序)

OEP(想jmp目的地址):739D 在内存中 739D  + 10000 = 1739D

jmp当前地址:(7B55  + 5)- 400 + 1000 + 10000 = 1 875A

那么E9 后的地址为 :1739D- 1 875A= FFFF EC43

泪目

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值