确定变量相对ebp偏移量

确定变量相对ebp偏移量

介绍四种确定变量相对ebp偏移量的方法

一、GDB调试出偏移量

   0x8048677 <main+95>     lea    eax, [esp + 0x1c]
   0x804867b <main+99>     mov    dword ptr [esp], eax
 ► 0x804867e <main+102>    call   gets@plt 

通过这一串汇编指令可以看出来,此时起始地址相对于esp的偏移为0x1c,只要查看这时候的esp和ebp的寄存器就可以知道偏移量为多少。

EBP  0xffffcfb8 ◂— 0x0
ESP  0xffffcf30 —▸ 0xffffcf4c ◂— 0x0

这里就可以算出来起始地址相对于返回地址的偏移为0xffffcfb8 - 0xffffcf30 - 0x1c + 4=112。这里的+4为ebp的长度,在返回地址前还有一个ebp的值也要覆盖。

二、GDB-peda计算偏移量

Step-1 使用gdb运行程序

$ gdb ./pwn

Step-2 生成溢出字符串

($gdb-peda) pattern create 200

长度需要保证可以溢出覆盖至RIP

Step-3 运行至输入点

($gdb-peda) c

输入生成的溢出字符串,回车后报错

复制栈顶前四个字节(64 bits为前8个字节)

Step-4 计算偏移量

($gdb-peda) pattern offset [xxxx]

偏移量显示出来后,重新运行程序至输入点,输入offset‘A’,然后回车至报错停下,查看是否为预期的ebp被覆盖、eip正常,根据结果调整offset的长度。算出来的偏移不一定对,以调试的为准。

三、PWNtools—cyclic计算偏移量

# 生成132个字符
$ cyclic 132
aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaabhaab

# 报错
$ ./level0      
Hello, World
aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaabhaab
zsh: segmentation fault  ./level0

# 查看长度
$ cyclic -l haab 
128

cycli是pwntools的工具,但是算出来的偏移量不一定对,以gdb调试的为准。

四、利用ida计算偏移量

-00000064 s               db 100 dup(?)
+00000000  s              db 4 dup(?)
+00000004  r              db 4 dup(?)
+00000008 argc            dd ?
+0000000C argv            dd ?                    ; offset
+00000010 envp            dd ?                    ; offset

用返回地址减去起始地址求得偏移量,这里s相对于返回地址得偏移量为0x68,但是这里面计算出来得偏移量可能是不对的。最好还是以调试出来的偏移量为准。

版权声明:本文为CSDN博主「coke_pwn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_62675330/article/details/123344386

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇