首页
社区
课程
招聘
[求助]关于0day2中利用加载模块之外的地址绕过safeSEH的问题
发表于: 2018-3-24 11:45 5399

[求助]关于0day2中利用加载模块之外的地址绕过safeSEH的问题

2018-3-24 11:45
5399
书中第11章11.6节中利用 0x00290B0B地址处对应的 call [ ebp+0x30] 跳板指令,为什么执行了这个跳板指令之后,程序流程会去执行 0xEBF6的短跳转指令?

如图:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
2
因为[ebp+0x30]指向栈上的shellcode
2018-3-26 16:43
0
雪    币: 3848
活跃值: (642)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
holing 因为[ebp+0x30]指向栈上的shellcode
谢谢回复,你的意思是[ebp+0x30]的位置就是0xEBF6的短跳转指令吗?
2018-3-26 16:57
0
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
4
病毒小子 谢谢回复,你的意思是[ebp+0x30]的位置就是0xEBF6的短跳转指令吗?
这个你自己跟一下就清楚啦
2018-3-27 06:15
0
雪    币: 3848
活跃值: (642)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
跟了,但是模块之外的地址不能下断点,只知道结果确实是执行了shellcode代码。
2018-3-27 09:14
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
截图全一点呀。。,是的,在ebp+30的地方填充的是短跳转指令
2018-4-12 10:33
0
雪    币: 3848
活跃值: (642)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
我的熊猫 截图全一点呀。。,是的,在ebp+30的地方填充的是短跳转指令
但是没有明白ebp+30怎么填充为短跳转指令的
2018-4-12 12:25
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
病毒小子 但是没有明白ebp+30怎么填充为短跳转指令的
调试可知,仔细看书,上面说了,调试过程中发现跳转后的位置是四个0x90,最后用了两个字节填充的短跳指令
2018-4-12 16:06
0
雪    币: 3848
活跃值: (642)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
我的熊猫 调试可知,仔细看书,上面说了,调试过程中发现跳转后的位置是四个0x90,最后用了两个字节填充的短跳指令
从短跳转到长跳转最后到shellcode都能理解,不理解的是为什么执行了0x00290B0B位置的指令后,程序会转入执行短跳转指令
2018-4-12 17:00
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
就是先跳到call  ebp加30的地址,执行call之后跳到ebp加30的位置,那里被填充成短跳指令了
2018-4-14 09:49
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
病毒小子 从短跳转到长跳转最后到shellcode都能理解,不理解的是为什么执行了0x00290B0B位置的指令后,程序会转入执行短跳转指令
刚实验到这个地方了,在网上看了下,有一种说法是seh都是链着的,执行call  [ebp+30]之后无法处理异常,就会继续转入下一个seh,也就是next  seh,也就是短跳指令所在的地方,所以那么多指令都最终会执行到next  seh那里
2018-4-15 21:17
0
游客
登录 | 注册 方可回帖
返回
//