首页
社区
课程
招聘
[旧帖] 如何修改RVMI1.5G限制 0.00雪花
2011-1-31 21:21 3944

[旧帖] 如何修改RVMI1.5G限制 0.00雪花

2011-1-31 21:21
3944
最近使用RVM_Integrator,发现有剩余空间1.5G限制,于是用OD跟,程序是用GetDiskFreeSpaceExW获取大小,然后用FCOMPP来比较(由于FCOMPP那里不只一次用,所以不能修改那里来达到目的)。但无法找到要比较的0x600(1536M)是从哪里来的,我试过跟按钮的处理函数,只看到最后用了SendMessageW来发送了一个WM_USER+28的消息,但最后在哪里处理就找不到了。
    希望高手能指教一下怎么找,又或者说一下怎么把GetDiskFreeSpaceExW返回的值乘3(感觉返回的值很大,用EAX可能装不下不吧?还有是用MUL还是IMUL?)

RVMI.7z

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mahjong 2011-2-1 08:35
2
0
.text:00463993                 lea     eax, [esp+40h+TotalNumberOfFreeBytes]
.text:00463997                 push    eax             ; lpTotalNumberOfFreeBytes
.text:00463998                 mov     eax, [esp+44h+lpDirectoryName]
.text:0046399C                 lea     ecx, [esp+44h+TotalNumberOfBytes]
.text:004639A0                 push    ecx             ; lpTotalNumberOfBytes
.text:004639A1                 lea     edx, [esp+48h+FreeBytesAvailableToCaller]
.text:004639A5                 push    edx             ; lpFreeBytesAvailableToCaller
.text:004639A6                 push    eax             ; lpDirectoryName
.text:004639A7                 call    ds:GetDiskFreeSpaceExW
.text:004639AD                 test    eax, eax
.text:004639AF                 jz      short loc_4639D5
.text:004639B1                 fild    qword ptr [esp+40h+FreeBytesAvailableToCaller]
.text:004639B5                 mov     esi, ebx
.text:004639B7                 fmul    ds:dbl_487270
.text:004639BD                 fstp    [esp+40h+FreeBytesAvailableToCallerInMB]
.text:004639C1                 call    sub_40BD60
.text:004639C6                 fld     [esp+40h+FreeBytesAvailableToCallerInMB]
.text:004639CA                 mov     dword ptr [ebx+8], 3
.text:004639D1                 fstp    qword ptr [ebx]
.text:004639D3                 jmp     short loc_4639E2

.rdata:00487270 dbl_487270      dq 9.5367431640625e-7   

调用GetDiskFreeSpaceExW 得到FreeBytesAvailableToCaller
然后乘以9.5367431640625e-7 将Byte 转换为MegaByte
再填写进qword ptr [ebx]
所以最简单的办法是改这个常数
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiluoyou 2011-2-1 11:34
3
0
[QUOTE=mahjong;921426].text:00463993                 lea     eax, [esp+40h+TotalNumberOfFreeBytes]
.text:00463997                 push    eax             ; lpTotalNumberOf...[/QUOTE]

你说的办法确实是好,但我还是想找出0x600的来源!
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wxhanshan 2011-2-1 12:59
4
0
好文章。支持
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kocoffee 2011-2-3 22:54
5
0
关注中,支持中
游客
登录 | 注册 方可回帖
返回