汇编+DELPHI高手请进(赏分)

smuwcwt 2003-03-27 07:18:22
在DPR文件里面有这样一段汇编代码,可以实现隐藏进程的作用,可否请大家替我分析一下这段代码。
Application.Initialize;
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx]
pop es
mov eax,10800000h
xchg [ebx+20h],eax
end;
Application.CreateForm(TForm1,Form1);
Application.Run;
end.
另外,这个程序一旦运行之后,小弟试过很多方法,均无法将其中止,请各位高手赐教,如何才能终止其运行。不胜感谢。
...全文
55 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
smuwcwt 2003-07-10
  • 打赏
  • 举报
回复
程序我基本上弄懂了,不过分全给你可不行,毕竟有那么多兄弟给我留言,还是留一点给人家吧,请勿见怪。
SuperFatcow 2003-06-27
  • 打赏
  • 举报
回复
这个东西我看到过,是网上一个恶作剧程序的代码,名字好象叫做“女鬼”吧?我找作者要了它的源代码。你的邮箱是什么,我给你发过去,里面有代码的详细注解。

不过分要全给我啊?
Frend 2003-04-25
  • 打赏
  • 举报
回复
up
gototop99 2003-04-25
  • 打赏
  • 举报
回复
没有接触过。。。。。

up。。。。。。。。。。。。。
ehom 2003-04-25
  • 打赏
  • 举报
回复
首先这段代码只在Win9X中有效

fs是80386后增加的附加数据段寄存器,按照栈后进先出的方式,将fs传递给附加段es,后面再次出栈是未改变前es的数据,既恢复寄存器es状态

mov ebx,es:[ebx],这是一种带段跨越前缀的直接寻址方式,将其中的数据传递给寄存器ebx,结合下面的xchg [ebx+20h],eax交换数据,其实质就是将附加数据段fs中特定位置的值改为10800000h

因为在Win9X中按下Ctrl+Alt+Del后,如果不存在可见窗体,会检查fs中特定位置的值是否是10800000h,如果是就不在进程序列表中显示该进程
smuwcwt 2003-04-25
  • 打赏
  • 举报
回复
hch_45:
 你把表单关了之后,实际上它并没有被关闭,只是隐藏了而已,你在WINDOWS优化大师的进程察看器里可以看到。
chenam 2003-04-24
  • 打赏
  • 举报
回复
学习
hch_45 2003-04-24
  • 打赏
  • 举报
回复
你是否漏帖了其他代码?请把代码完整贴出来。
按你上面的代码,一单击关闭就关了且出错
yoisyois 2003-04-24
  • 打赏
  • 举报
回复
gz
smuwcwt 2003-04-24
  • 打赏
  • 举报
回复
隔了这么久了,有没有人搞定呀?
alphax 2003-04-01
  • 打赏
  • 举报
回复
怎么了,楼主知道了,说来听听,我也想知道
smuwcwt 2003-04-01
  • 打赏
  • 举报
回复
OK
alphax 2003-03-28
  • 打赏
  • 举报
回复
我按你的代码实施了一下,产生不了你所说的情况,——进程隐藏和不能中止进程

你是否漏帖了其他代码?请把代码完整贴出来
wjlsmail 2003-03-27
  • 打赏
  • 举报
回复
Study

不过有点疑惑 , 这时候用的栈应该是 Delphi 编译分配的为何还会无法终止 ?
alphax 2003-03-27
  • 打赏
  • 举报
回复
up
xzgyb 2003-03-27
  • 打赏
  • 举报
回复
先作个记号
Linux2001 2003-03-27
  • 打赏
  • 举报
回复
搞不动

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧