首页
社区
课程
招聘
[旧帖] 去掉一个提示框 0.00雪花
发表于: 2012-2-5 19:47 4674

[旧帖] 去掉一个提示框 0.00雪花

2012-2-5 19:47
4674
我仿某软件写了一个小程序。

过程是这样的,检测用户输入的数值,如果大于2000则提示输入错误。

如何修改这个限制,可以修改2000的数值,也可以直接不让它弹框,反正要求绕过这个检测。

现在扔上我写的模拟小程序。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 171
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
要求给出思路以即贴出过程。谢谢
2012-2-5 19:47
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
3
思路自己去想,如果你自己做的工程,你可以自己在里面添加一些标记的物品来帮助你解析VB程序结构。

给出结果,修改内存0x401E76处或者文件0x1E76出的双字节数据0x7D0为你需要的数值大小即可。
2012-2-5 19:58
0
雪    币: 168
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
00401E63             FF15 90104000           call dword ptr ds:[<&MSVBVM60.__vbaF>; MSVBVM60.__vbaFreeObj
00401E69             B9 04000280             mov ecx,80020004
00401E6E             B8 0A000000             mov eax,0A
00401E73             66:81FE D007            cmp si,7D0                           ; 这里是修改那个值2000十六进制为7DO
00401E78             894D A8                 mov dword ptr ss:[ebp-58],ecx
00401E7B             8945 A0                 mov dword ptr ss:[ebp-60],eax
00401E7E             894D B8                 mov dword ptr ss:[ebp-48],ecx
00401E81             8945 B0                 mov dword ptr ss:[ebp-50],eax
00401E84             894D C8                 mov dword ptr ss:[ebp-38],ecx
00401E87             8945 C0                 mov dword ptr ss:[ebp-40],eax
00401E8A             7E 43                   jle short 工程1.00401ECF               ; 这里,跳则在2000内,不跳就会提示错误
00401E8C             8D55 90                 lea edx,dword ptr ss:[ebp-70]
00401E8F             8D4D D0                 lea ecx,dword ptr ss:[ebp-30]
00401E92             C745 98 30184000        mov dword ptr ss:[ebp-68],工程1.004018>
00401E99             C745 90 08000000        mov dword ptr ss:[ebp-70],8
00401EA0             FF15 74104000           call dword ptr ds:[<&MSVBVM60.__vbaV>; MSVBVM60.__vbaVarDup
00401EA6             8D4D A0                 lea ecx,dword ptr ss:[ebp-60]
2012-2-5 20:03
0
雪    币: 168
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那里你想改多少自己算算改下就行了
2012-2-5 20:05
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
3.4都是答案,我友情支持。
2012-2-5 22:24
0
雪    币: 35
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你自己仿的,在源码里改就是了啊。很费劲?
2012-2-6 10:32
0
雪    币: 274
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
修改跳转语句
2012-2-6 13:21
0
雪    币: 82
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不懂,只是想要钱。哈哈
2012-2-6 17:35
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
00401E73   .  66:81FE D007  cmp     si, 7D0   
//0x7D0=2000,这里可以修改2000的数值
00401E8A   . /7E 43         jle     short 00401ECF
//jli改成jmp,可以跳过错误提示
2012-2-10 12:29
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
前面的已给出了方法,我在这里学习了。
2012-2-12 06:01
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
刚刚弄了下,我也是新手,不知道方法是否正确,至少达到了目的。
用OD加载,因为程序是和2000作比较,因此直接搜索该常量。
右键->查找->常量,输入07D0,即2000的十六进制表示
来到  00401E73  CMP SI,7D0                        
这个就是比较是否大于2000的地方了。
继续往下,看到一个跳转
JLE SHORT  工程1.00401ECF   ,表示小于就跳转。
跟随这个跳转,发现下面两处
00401EB7   CALL DWORD PTR DS :[<&MSVBVM60.#595>]
这一行便是调用rtcMsgBox(VB编写),是大于2000时的弹出的对话框,将此处用nop注掉,便不会弹出该对话框。
同理看到
00401EFA   CALL DWORD PTR DS :[<&MSVBVM60.#595>]
将这一行用nop注释,输入正确时也不会弹框了。

不知道符合你的要求不
新人第一次回帖,谁能告诉我咋传图片
2012-2-17 16:58
0
游客
登录 | 注册 方可回帖
返回
//