ret2csu

ret2csu

我认为这道题本身是没有什么实际意义的,但是它教会了我一种新的利用思路
这道题虽然明确指出利用函数__libc_csu_init来进行
但这个函数本身不是做为攻击者使用而设计的,它是设计出来初始化libc,只是恰好我们能够利用
因此,我认为这道题的主要目的是利用现有的汇编片段来实现攻击(与ret2por比较类似)

__libc_csu_init

在本题里,这个函数的汇编代码如下(可能与你看到的有点不同)

; void _libc_csu_init(void)
public __libc_csu_init
__libc_csu_init proc near

var_30= qword ptr -30h
var_28= qword ptr -28h
var_20= qword ptr -20h
var_18= qword ptr -18h
var_10= qword ptr -10h
var_8= qword ptr -8

; __unwind {
   
	mov     [rsp+var_28], rbp
	mov     [rsp+var_20], r12
	lea     rbp, cs:600E24h
	lea     r12, cs:600E24h
	mov     [rsp+var_18], r13
	mov     [rsp+var_10], r14
	mov     [rsp+var_8], r15
	mov     [rsp+var_30], rbx
	sub     rsp, 38h
	sub     rbp, r12
	mov     r13d, edi
	mov     r14, rsi
	sar     rbp, 3
	mov     r15, rdx
	call    _init_proc
	test    rbp, rbp
	jz      short loc_400606
	xor     ebx, ebx
	nop     dword ptr [rax+00h]
loc_4005F0:
	mov     rdx, r15
	mov     rsi, r14
	mov     edi, r13d
	call    qword ptr [r12+rbx*8]
	add     rbx, 1
	cmp     rbx, rbp
	jnz     short loc_4005F0
loc_400606:
	mov     rbx, [rsp+38h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值