汇编+DELPHI高手请进

smuwcwt 2003-04-01 03:25:46
在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.
另外,这个程序一旦运行之后,小弟试过很多方法,均无法将其中止,请各位高手赐教,如何才能终止其运行。不胜感谢。

...全文
34 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BraveHeart2222 2003-06-27
  • 打赏
  • 举报
回复
研究研究!
SuperFatcow 2003-06-27
  • 打赏
  • 举报
回复
我有源代码的详细注解,可以给你发到邮箱里去,不过分要全给我。
ehom 2003-04-25
  • 打赏
  • 举报
回复
首先这段代码只在Win9X中有效

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

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

因为在Win9X中按下Ctrl+Alt+Del后,如果不存在可见窗体,会检查fs中特定位置的值是否是10800000h,如果是就不在进程序列表中显示该进程
smuwcwt 2003-04-24
  • 打赏
  • 举报
回复
隔了这么久,还没有人能完全搞定吗?
alphax 2003-04-05
  • 打赏
  • 举报
回复
楼主那天跟我说,他的操作系统是WinMe,而我在Win2000 Prof试过,没有这个效果
onem 2003-04-05
  • 打赏
  • 举报
回复
es:[ebx](=fs:30H)中放了当前进程块的指针,进程块+20H中存放了进程的属性,改为10800000h相当于使进程成为服务进程,CTRL+ALT+DEL中就列不出了,但有别的办法。
yaos 2003-04-05
  • 打赏
  • 举报
回复
mov eax,10800000h
xchg [ebx+20h],eax

alphax 2003-04-04
  • 打赏
  • 举报
回复
楼主你怎么不说明一下你的操作系统呢?
smuwcwt 2003-04-04
  • 打赏
  • 举报
回复
是的,程序不会出现在按CTRL+ALT+DEL出现的任务列表中,但是我可以在WINDOWS优化大师的进程观察器里看到,但是无法中止。重启计算机只能按RESET键,无法通过CTRL+ALT+DEL启动
紫郢剑侠 2003-04-04
  • 打赏
  • 举报
回复
楼主,你说的隐藏是指什么?是指程序不会出现在按CTRL + ALT + DEL出现的任务列表中吗?
如是指这个, 有个未公开的API函数可以实现这个功能.

无法中止? 你用过了API函数TerminateProcess了吗?
BigBen 2003-04-03
  • 打赏
  • 举报
回复
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx] ;第30h个异常?
pop es
mov eax,10800000h ;1080 0000又是啥?
xchg [ebx+20h],eax
end;
smuwcwt 2003-04-03
  • 打赏
  • 举报
回复
我肯定不知道这些问题呀,知道我还问啥?
alphax 2003-04-01
  • 打赏
  • 举报
回复
up
tfxg 2003-04-01
  • 打赏
  • 举报
回复
Application.free;
Application.close;

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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