| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 839 人关注过本帖
标题:汇编模糊查杀。杀不了。帮我看下那里错了
取消只看楼主 加入收藏
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
结帖率:54.55%
收藏
已结贴  问题点数:20 回复次数:2 
汇编模糊查杀。杀不了。帮我看下那里错了
.386
.model flat,stdcall
option casemap:none
include windows.inc
include gdi32.inc
includelib gdi32.lib
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include     Shlwapi.inc
includelib  Shlwapi.lib   ;strstr
;;
.data
.const
close db '百度',0
.code

;定义回调函数
_CloseWnd proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
  local @buffer[256]:BYTE   ;接收窗口标题
  invoke IsWindowVisible,hWnd
.if eax ;是否是可见的窗口 eax的值是否不为0
    invoke GetWindowText,hWnd,addr @buffer,256
    invoke StrStr,addr @buffer,offset close
   .if eax
       ;invoke PostMessage,hWnd,WM_CLOSE,0,0
       invoke MessageBox,hWnd,addr @buffer,addr @buffer,0
   .endif
.endif

_CloseWnd endp
start:
.while TRUE
invoke Sleep,300
invoke EnumWindows,_CloseWnd,NULL
.endw

end start
搜索更多相关主题的帖子: 汇编 模糊 
2009-09-08 15:25
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
再问一下吧。 我用while死循环。但是会不断增加内存。是否是频繁申请局部变量导致的?

程序代码:
_CloseWnd proc uses ebx edi esi,hWnd,lParam 
  local @buffer[256]:BYTE   ;接收窗口标题 
  invoke IsWindowVisible,hWnd 
.if eax ;是否是可见的窗口 eax的值是否不为0 
    invoke GetWindowText,hWnd,addr @buffer,256 
    invoke StrStr,addr @buffer,offset close 
   .if eax 
       invoke PostMessage,hWnd,WM_CLOSE,0,0 
   .endif 
.endif 
mov eax,TRUE 
ret 
_CloseWnd endp 
start: 
.while TRUE 
invoke Sleep,300 
invoke EnumWindows,addr _CloseWnd,NULL 
.endw 
invoke ExitProcess,NULL 
end start 



EnumWindows调用之后,系统枚举所有窗口,找到一个窗口之后就会进入回调过程。。在过程中,就是你要处理的事情,还有在过程中这个返回false是指什么呢?返回true又是什么,我百度的c代码都是返回true的。。我是这样想,这个过程一定是要返回true的,表示过程结束,控制权又交回给系统枚举下一个窗口。是否这样呢?  
不过这里不管结不结束用了ret是直接会把地址返回??


[ 本帖最后由 onepc 于 2009-9-26 14:45 编辑 ]
2009-09-26 14:32
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
嗯。比如我要 一个程序,一直运行。如何。使他不会内存增加啊?
比如我要查杀我的电脑这个窗口。要如何写呢? 我在上面也没有别的地方申请内存之类的啊?那些api好像也不会有内存操作之类的。
2009-09-26 15:30
快速回复:汇编模糊查杀。杀不了。帮我看下那里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015438 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved