首页
社区
课程
招聘
[原创]ESET ID自动获取填写工具 (ASM)
发表于: 2009-6-26 18:52 10388

[原创]ESET ID自动获取填写工具 (ASM)

2009-6-26 18:52
10388
简介:

    ESET NOD32  是世界排名第三的杀毒软件,其以轻快巧著称,下载地址 :http://www.skycn.com/soft/37962.html     
      
      这个小工具的作用是自动从网上ESET ID发布页获取最新ID,然后用ID到官方进行验证,验证可用就写入本地注册表来修改ESET的ID信息。

    本程序涉及了wininet 函数库,AOGO的正则表达式的使用,托盘气泡提示,配置文件的读取等等,希望对大家有所帮助!

另外程序可能存在各种BUG,欢迎测试告知,谢谢!


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;  Programmed by nohacks, nohacks@163.com
;  Website: http://hi.baidu.com/nohacks
;           Win32 ASM is Masm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;  版本信息
;     Eset_Nohacks_AUTOID V1.0 - ESET ID自动获取填写工具(适用2.x和3.x版本)  
;     
;      nohacks                   2009年 6 月 26 日
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.586
.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive


include ESET_AUTOID.inc

include Express.inc

includelib Express.lib

;#########################################################################

 .Const
 
  RegEset30 db  "SOFTWARE\Eset\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile\",0
  RegEset27 db "SOFTWARE\Eset\Nod\CurrentVersion\Modules\Update\Settings\Config000\Settings\",0
  Express db  'username?*[%]{[a-z]+-[0-9]+}?*<\>>password?*[%]{[a-z,0-9]+}',0        
.data
  PassBytes  db 97, 214, 212, 233, 221, 240, 251, 242, 91, 100, 53, 173, 183, 200, 25, 117, 236, 49, 43, 188 
  UserPass   db '%s--%s',0
  template db '%1d',0
  ininame db  ".\ESET_AUTOID.ini",0
  Section db "SETUP",0
  keyname db "ECHO",0
  myecho  db "NO",0
  
.data?

  hInstance   dd ?
  Winhwnd        dd ? 
  hwnd    dd  ?
  @echo       dd ?
  @hKey       dd ?
  lpRet        POINT 10 dup(<?>)             
  iCount       dd ?
  iecho        db 10 dup(0)     
note mNOTIFYICONDATA <>  
 
;#########################################################################
.code

start:
   invoke GetModuleHandle,NULL
   mov hInstance,eax
   invoke InitCommonControls   
   invoke  GetPrivateProfileString,addr Section,addr keyname,addr myecho,addr iecho ,size iecho ,addr ininame
   invoke lstrlen, addr iecho                
   invoke CharUpperBuff,addr iecho ,eax          
   invoke lstrcmp,addr iecho,CTEXT("OFF")
  
  .IF  EAX==0
          mov @echo,0
  .else
  	  mov @echo,1		
  .endif

   invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
   invoke ExitProcess,0


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;文本串去空格拷贝过程, 参数:输入文本,输出缓存
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Trim proc uses esi edi ecx edx ebx , lpstr,Buffer
	 mov esi,lpstr
	 mov edi ,Buffer
	 xor ecx,ecx
	 xor edx,edx	 
       .while TRUE
                mov al,20h
                mov ah ,byte ptr[esi+ecx]      
      	       .if  ah==al
      	       	    inc edx 	 	       	       
	       .else	       	  
               	 mov ebx, ecx
               	 sub ebx,edx 
	         mov byte ptr[edi+ebx],ah  
	           .if  ah==0
	       	         ret
	           .endif
	       .endif
	     	inc ecx
        .endw	  		  			
	ret
Trim endp

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;调试用,信息框显示数值 参数:标题,待显示数值
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

debugbox proc  text:dword,dwDword:dword
LOCAL posBuffer[10]:byte

invoke wsprintf,addr posBuffer,addr template,dwDword
invoke MessageBox, NULL, addr posBuffer, text, MB_OK 

debugbox  endp



;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;正则表达式取子文本,参数:POINT地址,输出缓存,缓存大小
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GetRetString proc uses edx , lpPOINT,lpRetString,iSize
    mov edx,lpPOINT
    mov eax,[edx].POINT.y
    sub eax,[edx].POINT.x
    .if eax>iSize
        mov eax,iSize
    .endif
    push eax
    invoke RtlMoveMemory,lpRetString,[edx].POINT.x,eax
    pop eax
    mov edx,lpRetString
    mov BYTE ptr [edx+eax],0
    ret
GetRetString endp


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;NOD32_ID验证过程,参数:用户名,密码
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

TestID proc  uses edx  lpuser:dword,lppass:dword

 LOCAL hOpen,hConnect,hRequest,dwSize,status
 
         
          invoke InternetOpen,CTEXT("nohacks_autoid"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0
          mov hOpen,eax

        .IF eax==0  	
        	invoke InternetCloseHandle,hOpen
                mov eax,-1
        	ret      	
        .endif
      

           invoke InternetConnect,hOpen,CTEXT("download.eset.com"),INTERNET_DEFAULT_HTTP_PORT,lpuser,lppass,INTERNET_SERVICE_HTTP,0,0
          
          mov hConnect,eax
          
                 .IF eax==0  
  	
        	invoke InternetCloseHandle,hOpen
        	invoke InternetCloseHandle,hConnect
                mov eax,-1
        	ret      	
        .endif
        invoke HttpOpenRequest,hConnect, CTEXT("GET"),CTEXT("/download/win"),NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 0           
          mov  hRequest,eax
         .IF eax==0  
  	
        	invoke InternetCloseHandle,hOpen
        	invoke InternetCloseHandle,hConnect
        	invoke	HttpEndRequest ,hRequest,NULL, NULL,NULL       	
                mov eax,-1
        	ret      	
         .endif
        	
         invoke	HttpSendRequest ,hRequest,NULL,0,NULL,0

           .IF eax==0  
  	
        	invoke InternetCloseHandle,hOpen
        	invoke InternetCloseHandle,hConnect
        	invoke	HttpEndRequest ,hRequest,NULL, NULL,NULL       	       	
                mov eax,-1
        	ret      	
         .endif

         mov dwSize,4
         mov status,0

         invoke  HttpQueryInfo,hRequest,HTTP_QUERY_STATUS_CODE +  HTTP_QUERY_FLAG_NUMBER , addr status ,  addr dwSize , 0
   
       .IF eax==0  
  	
        	invoke InternetCloseHandle,hOpen
        	invoke InternetCloseHandle,hConnect
        	invoke	HttpEndRequest ,hRequest,NULL, NULL,NULL       	       	
                mov eax,-1
        	ret      	
         .endif
   
       invoke InternetCloseHandle,hOpen
       invoke InternetCloseHandle,hConnect
       invoke InternetCloseHandle,hRequest
       invoke	HttpEndRequest ,hRequest,NULL, NULL,NULL
       ;invoke  debugbox,CTEXT("status"),status
      
       .if status!=0 

          .if  status!=401
       	  ; invoke  debugbox,CTEXT("status"),status
   	    mov eax,TRUE
   	    
   	    ret
       	        	 
           .endif
       
       .endif
           
        xor eax,eax
	ret

TestID endp

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;向系统托盘中写入图标 输入:窗口句柄 图标id 自定义消息 图标句柄  显示文本 标题

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcTaskQiPao  proc  _hWnd,_dwId,_dwWm,_hIcon,_szBuffer,_szTitle
  local @stNid:mNOTIFYICONDATA
 
  .if @echo==0
  	   ret 	
  .endif
 
  mov  @stNid.cbSize,sizeof  mNOTIFYICONDATA
  push  _hWnd
  pop  @stNid.hwnd
  push  _dwId
  pop  @stNid.uID
  mov  @stNid.uFlags,  NIF_INFO
  push  _dwWm
  pop  @stNid.uCallbackMessage
  push  _hIcon
  pop  @stNid.hIcon
  mov @stNid.dwInfoFlags,0
  mov @stNid.uTimeoutOrVersion,3000
  ;invoke  lstrcpy,addr @stNid.szTip,_szText
  invoke  lstrcpy,addr @stNid.szInfo,_szBuffer
  invoke  lstrcpy,addr @stNid.szInfoTitle,_szTitle
  invoke  Shell_NotifyIcon,NIM_MODIFY,addr @stNid
  
  ret
_ProcTaskQiPao  endp 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;ESET ID 密码加密过程,参数:源码,输出缓存
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

EnCode proc uses edi ebx lpEnCode,lpEnDestBuff
    xor edi,edi
    lea eax,PassBytes        
    mov edx,lpEnCode
    mov ebx,lpEnDestBuff
    
    .while edi < 10
    
       mov cl,BYTE ptr [edx+edi]      ;把密码逐位移到CL
       xor cl,BYTE ptr [eax+edi*2]    ;;关键代码: 与编码奇数位进行位异或运算
       mov BYTE ptr [ebx+edi*2],cl    ;奇数位移到缓存
           
       mov cl,BYTE ptr [eax+edi*2-1]  ;偶数位移到缓存
       mov BYTE ptr [ebx+edi*2-1] ,cl
       
       inc edi
    .endw
    mov eax,ebx
    ret
EnCode endp


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;ESET ID 密码解密过程,参数:源码,输出缓存
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

DeCode proc uses edi ebx lpEnCode,lpDeDestBuff
    
    xor edi,edi                       
    lea eax,PassBytes        
    mov edx,lpEnCode
    mov ebx,lpDeDestBuff
    .while edi < 10
        mov cl,BYTE ptr [edx+edi*2] ;把加密后的密码奇数位移到CL
        xor cl,BYTE ptr [eax+edi*2] ;关键代码: 与编码奇数位进行位异或运算
        mov BYTE ptr [ebx+edi],cl   ;奇数位移到缓存
        inc edi
    .endw
    mov eax,ebx
    ret
DeCode endp


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;ESET ID获取过程,返回地址,参数:分发页网址 ,输出用户名,输出密码,获取个数上限,可以为空,默认100
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

GetEsetid proc uses ebx edx, url, lpUser,lpPass,ldNum
LOCAL hOpen,hOpenUrl,dwSize,status,@pMemory,@lpcdData,@start,@end
LOCAL @lpUser[20]:BYTE
LOCAL @lpPass[20]:BYTE
LOCAL @Pass[20]:BYTE
LOCAL  @TEMP[100]:BYTE

   ;开始获取ID分发页源码
     invoke InternetOpen,CTEXT("nohacks_autoid"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0
     
                .IF eax==0  
  	
        	invoke InternetCloseHandle,hOpen         	       	
        	mov eax,-1
        	ret      	
                .endif
             
      mov hOpen,eax

      invoke InternetOpenUrl,hOpen,url,NULL,0,INTERNET_FLAG_TRANSFER_BINARY+INTERNET_FLAG_PRAGMA_NOCACHE,0
                  .IF eax==0  
  	
        	  invoke InternetCloseHandle,hOpen   
        	  invoke InternetCloseHandle,hOpenUrl      	       	
        	  mov eax,-1
        	  ret      	
                  .endif

       mov hOpenUrl,eax
       mov dwSize,4
       mov status,0

       invoke  HttpQueryInfo,hOpenUrl,HTTP_QUERY_CONTENT_LENGTH +  HTTP_QUERY_FLAG_NUMBER , addr status ,  addr dwSize , 0
                   .IF eax==0  
  	
        	   invoke InternetCloseHandle,hOpen   
        	   invoke InternetCloseHandle,hOpenUrl      	       	
        	   mov eax,-1
        	   ret      	
                   .endif

       invoke  GlobalAlloc,0, status+1
       mov @pMemory,eax 
       .if (!eax) 
        mov eax,-2
        ret       
       .endif                 
    
        invoke  RtlZeroMemory ,@pMemory,status+1

     ;成功获取ID分发页源码,保存在申请的空间 @pMemory
        invoke InternetReadFile,hOpenUrl, @pMemory,status,addr @lpcdData
        .if (!eax)         
        mov eax,-3
        ret        
        .endif       
        invoke InternetCloseHandle,hOpen
        invoke InternetCloseHandle,hOpenUrl   	

      ;DebugCode:   invoke debugbox,CTEXT("status"),status
     
             
     ;===========开始循环获取验证ID===================  
   
     
     ;设置搜索开始地址
     push @pMemory          
     pop  @start
     
     ;设置搜索结束地址
     mov eax,status
     add eax,@pMemory
     mov @end,eax
      
     .if  ldNum==NULL
     
         mov ldNum,100
           
     .endif
                       
     .WHILE ldNum>0
           dec ldNum 
  	   mov iCount,3
  	   invoke  ExpressSearch,0,@start,@end,addr Express,addr lpRet,addr iCount,EF_USEEXPRESS                
           .BREAK .if (eax==0)
           
           ;后移开始地址到本次找到的位置尾 
           push lpRet.y                         
           pop  @start
                   
  	   .if SDWORD ptr eax>0 
  	           	          	          
	        invoke  RtlZeroMemory ,addr @lpUser,sizeof @lpUser
	        invoke  RtlZeroMemory ,addr @lpPass,sizeof @lpPass
  	        invoke GetRetString,addr lpRet[sizeof POINT],addr @lpUser,sizeof @lpUser-1
                invoke GetRetString,addr lpRet[sizeof POINT*2],addr @lpPass,sizeof @lpPass-1                                      
                                           
                 ;输出提示 
                invoke wsprintf,addr @TEMP,addr  UserPass ,addr @lpUser,addr @lpPass  
                invoke   _ProcTaskQiPao,Winhwnd,0,WM_NOTIFYICON ,hwnd,addr @TEMP ,CTEXT("正在验证网络ID")   
     	        invoke TestID,addr @lpUser  ,addr @lpPass
   
  	         .if (eax)
  	               invoke Trim, addr @lpUser ,lpUser                	          	 	       	 
         	       invoke Trim, addr @lpPass ,lpPass  
  	               ;释放申请内存
  	               invoke GlobalFree, @pMemory
                        mov eax ,TRUE
                        ret
                 .endif
                                	                   	             
           .endif 
                      	
     .endw
      
     invoke GlobalFree, @pMemory
     mov eax ,FALSE
     ret

GetEsetid endp



DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL @lpType,@lpcdData
LOCAL hOpen,hOpenUrl,@pMemory
LOCAL dwSize,status
LOCAL @lpUser[20]:BYTE
LOCAL @lpPass[20]:BYTE
LOCAL @Pass[20]:BYTE
LOCAL  @TEMP[100]:BYTE
LOCAL  temp

 push hWin
 pop Winhwnd 
 mov eax,uMsg
 .if eax==WM_INITDIALOG      ;if 1
     invoke LoadIcon,hInstance,1  
     mov hwnd,eax
     mov note.cbSize,sizeof mNOTIFYICONDATA 
     push hWin
     pop note.hwnd 
     mov note.uID,IDI_TRAY 
     mov note.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP 
     mov note.uCallbackMessage,WM_SHELLNOTIFY 
     push  hwnd
     pop note.hIcon
     invoke lstrcpy,addr note.szTip,CTEXT("ESET NOD32 ID自动升级工具")
     invoke Shell_NotifyIcon,NIM_ADD,addr note 
  
      ; 开始读注册表
      invoke   RegOpenKeyEx,HKEY_LOCAL_MACHINE, addr  RegEset30,\      
                NULL, KEY_ALL_ACCESS,ADDR @hKey           
        .if  eax == ERROR_SUCCESS       
          	
              ;读取ESET本地用户名
              regurl:  
              invoke  RtlZeroMemory ,addr @lpUser,sizeof @lpUser
              invoke  RegQueryValueEx,@hKey,CTEXT("username"), 0,ADDR @lpType,NULL,addr @lpcdData
              invoke  RegQueryValueEx,@hKey,CTEXT("username"), 0,ADDR @lpType,ADDR @lpUser,addr @lpcdData
 
             ; REG_SZ,REG_BINARY
 
                  .if @lpcdData < 2
         
                      jmp IdNull
         	
                  .endif                  
        
               ;读取ESET本地密码
               invoke  RtlZeroMemory ,addr @lpPass,sizeof @lpPass
               invoke  RegQueryValueEx,@hKey,CTEXT("password"), 0,ADDR @lpType,NULL,addr @lpcdData             
               invoke  RegQueryValueEx,@hKey,CTEXT("password"),0,ADDR @lpType,ADDR @lpPass,addr @lpcdData  
    
                   .if @lpcdData < 2
         
                     jmp IdNull
         	
                    .endif         
             
               ;解密
               invoke  RtlZeroMemory ,addr @Pass,11
               invoke DeCode,addr @lpPass,addr @Pass
               invoke wsprintf,addr @TEMP,addr UserPass ,addr @lpUser,addr @Pass
               ;输出提示
               invoke   _ProcTaskQiPao,hWin,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("正在验证ESET本地ID")
                 
              ;联网验证ID
               invoke TestID ,addr @lpUser,addr @Pass

                 .if eax==-1
          	           invoke   _ProcTaskQiPao,Winhwnd,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("连接官网时发生错误,请检查网络!")
                           invoke Sleep,500
                           jmp	exit
                 .endif


                .IF eax==TRUE
         	          invoke   _ProcTaskQiPao,hWin,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("本机ESET ID有效!") 
         	           invoke Sleep,100        	  	
                           jmp exit        
                .else
         	
                      IdNull:
         	
                     invoke   _ProcTaskQiPao,hWin,0,WM_NOTIFYICON ,hwnd,CTEXT("http://www.eset.org.cn"),CTEXT("本机ESET ID无效,获取ID自分发页:")
                     ;数据清零
                     invoke  RtlZeroMemory ,addr @lpUser,sizeof @lpUser
                     invoke  RtlZeroMemory ,addr @lpPass,sizeof @lpPass
                     
                    ;获取有效ID
                     invoke GetEsetid ,CTEXT("http://www.eset.org.cn"),addr @lpUser,addr @lpPass,10
     
                  .if eax
                    	
                    	;写到注册表用户名
         		
                     invoke lstrlen, addr @lpUser  
                     invoke  RegSetValueEx,@hKey,CTEXT("username"),0,REG_SZ,addr @lpUser,eax
                   
                    ;解密写入密码
         	     invoke EnCode,addr @lpPass,addr @Pass
         	     invoke  RegSetValueEx,@hKey,CTEXT("password"), 0,REG_BINARY,addr @Pass , 20
                    
                     .if (!eax)
  	         
  	             ;输出成功提示   
  	             invoke   _ProcTaskQiPao,Winhwnd,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("有效ID已存入电脑!")
         	     invoke Sleep,100       	        
                     .else
                     	
                     invoke   _ProcTaskQiPao,Winhwnd,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("ID存入电脑时发生错误,请检查!")
         	     invoke Sleep,500   	

                     .endif
         	    
         	     jmp exit
                    
                .else
                    	invoke   _ProcTaskQiPao,Winhwnd,0,WM_NOTIFYICON ,hwnd,ADDR @TEMP,CTEXT("获取ID错误,请检查网络!")
         	        invoke Sleep,500     
                    	jmp exit                   	 
                .endif         	
             
          .endif
      
        .else
  	
              invoke   RegOpenKeyEx,HKEY_LOCAL_MACHINE, addr  RegEset27,\
      
                NULL, KEY_ALL_ACCESS,ADDR @hKey
  	
  	 
  	    .if  eax == ERROR_SUCCESS

  	 	 jmp  regurl
 	
  	     .else
             	 		
  	     invoke MessageBox,NULL,CTEXT("本机没有安装ESET NOD32 "),CTEXT("提示"),MB_ICONERROR+MB_OK
  	     ;invoke   _ProcTaskQiPao,hWin,0,WM_NOTIFYICON ,hwnd,CTEXT("本机没有安装ESET NOD32 "),CTEXT("提示")           
  	     ;invoke Sleep,500
  	    
  	     jmp exit
  	      .endif               
 
        .endif                    

  .elseif eax==WM_COMMAND          

  .elseif eax==WM_CLOSE           
	
	 exit:
	        invoke RegCloseKey,@hKey
	        invoke Shell_NotifyIcon,NIM_DELETE,addr note
		invoke EndDialog,hWin,0		 
  .else                               
		mov		eax,FALSE
		ret
  .endif                                   
	mov		eax,TRUE
	ret

DlgProc endp


end start


==========ESET_NOHACKS_AUTOID.ini=========
[SETUP]
ECHO=ON

;OFF 关闭气泡提示
;ON  显示气泡提示
==========

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 2307
活跃值: (983)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
辛苦了啊!!
2009-6-26 19:53
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
3
  

呵呵,是流了不少汗,这鬼天气
2009-6-26 19:59
0
雪    币: 237
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了,幸苦幸苦,呵呵~~
2009-6-26 22:10
0
雪    币: 278
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
太强大了..
2009-6-26 23:27
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
很喜欢....
我也要学汇编!
2009-6-26 23:44
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
AOGO的正则表达式
2009-6-28 00:17
0
雪    币: 471
活跃值: (3703)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
汇编功底很好好,工具也很好用
2009-6-28 10:03
0
雪    币: 267
活跃值: (24)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
感觉确实很好的东西!自己虽然不用NOD32
2009-6-28 12:48
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
TAG: ESET ID ASM AUTO WININET
2009-6-28 13:08
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
11
代码很值得借鉴
2009-6-28 18:36
0
雪    币: 226
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
marked...
2009-6-28 18:43
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习楼主的代码ing....
2009-6-28 22:48
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
好东西,学习下!气泡那个只适用win2k及其以上吧!
2009-6-29 10:47
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
很实用的东西!

NOD32 4.0 下面显示写入有效ID,但是看了下事实上没写入,无法更新。
2009-6-29 10:57
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
16
4.0的内核对注册表进行了保护,这个版本不支持4.0的

或者把ESET的自我保护关掉再更新
2009-6-29 17:25
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学习思路!
感谢楼主!
既给“鱼”、又给“渔”!
2009-6-29 17:59
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
18
应该是 ,现在的机器可不都是。
2009-6-30 12:12
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JLN
19
下载学习一下
2009-6-30 19:39
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
下载学习
2009-7-12 19:58
0
游客
登录 | 注册 方可回帖
返回
//