-
-
菜鸟的SUB溢出问题
-
发表于:
2010-10-5 14:10
3577
-
push eax
push edx
mov eax,addr3 // 自己的代码地址
mov byte ptr [eax],0x83
mov byte ptr [eax+1],0xc4
mov byte ptr [eax+2],0x04
mov byte ptr [eax+3],0x85
mov byte ptr [eax+4],0xc0
mov byte ptr [eax+5],0xe9//上面这段为跳回修复代码jmp
mov edx,0x42dac7//需跳回的地址
sub edx,addr4//自己代码跳出的地址
sub edx,5
xchg [eax+6],edx
//上面计算出跳回但为负值只取到FFFFFFFF,因为要申请的内存地址比原始地址大,减出为负值,跳回就不成功,应该是溢出了吧,这里不知道怎么写了,FFFFFFFF8EDDA72后面8EDDA72直接写入跳转地址正确
//下面的代码正常,要跳到的地址大于跳出地址,相减后为正值,跳转改写成功
mov eax,addr3 // 自己的地址传
mov edx,addr1// 要修改处地址
sub eax,edx
sub eax,5
mov byte ptr [edx],0xe8 //call
xchg [edx+1],eax //写入目标地址
pop edx
pop eax
[课程]FART 脱壳王!加量不加价!FART作者讲授!