首页
社区
课程
招聘
Crack的思想解决程序开发问题
发表于: 2006-5-26 15:59 4834

Crack的思想解决程序开发问题

2006-5-26 15:59
4834
Crack的思想解决程序开发问题
kongfoo/2006.5.26

单位某领导的亲属在某评选活动中作为候选人,在网上接受投票,
该领导发动我们投票,鉴于竞争对手(某些老师)发动学生投票,
该领导要求我们几个人各投100多次,遂写一网上投票机,但投完
之后网页弹一个对话框,“谢谢投票”云云,由于需要自动定时
投票,而这框却阻塞了进程,要去掉。网上搜一下解决方法是钩
函数。于是拿出OD,运行,bp MessageBoxA和bp MessageBoxW,
让它弹出对话框,意外地没断下来。得用其它办法。弹出对话框
后OD中F12暂停,看看堆栈,发现返回user32的地址,去下断。
几次返回之后就发现目标:

77D3B126    E8 23000000     CALL user32.SoftModalMessageBox

这方法对于弹出对话框函数的定位是比较有效的。

解决使用WebBrowser控件弹出对话框问题的答案也很自然浮出水面:
将SoftModalMessageBox函数开头的代码改为retn 4就OK了。

代码很简单:
var SMMB:Pointer;
    MBI:TMemoryBasicInformation;
begin
  SMMB:=GetProcAddress(GetModuleHandle('user32.dll'),'SoftModalMessageBox');
  VirtualQuery(SMMB,MBI,SizeOf(MBI));
  VirtualProtect(SMMB,1024,PAGE_EXECUTE_READWRITE,@MBI);
  asm  //patch
    mov eax,SMMB
    mov byte ptr [eax],$C2
    mov byte ptr [eax+1],4
    mov byte ptr [eax+2],0
  end;

环境:Windows xp sp2, delphi 7。

手中握着Crack这把利刃,软件开发中当如虎添翼,轻车熟路了。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
学习
2006-5-26 16:59
0
雪    币: 3685
活跃值: (4237)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
3
佩服的六体投地。
2006-5-26 17:20
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ywb
4
要是选国家领导人这样 的话, 程序员可就吃香
2006-5-26 17:59
0
雪    币: 290
活跃值: (645)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可以采用MouseEvent的!
2006-5-26 21:58
0
游客
登录 | 注册 方可回帖
返回
//