安全中国首页 > 文章中心 > 编释语言
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:www.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

《加密解密 技术内幕》5.31 VB anti-loader 2种常用方法介绍(3千字)

更新时间:2008-3-25 0:31:56
责任编辑:流火
热 点:
VB anti-loader 2种常用方法介绍 

    所谓loader,主要指smartceck、wkt vb debugger等。 
    从目前VB共享软件的保护情况看,源代码层面主要还是运用二种方法来对抗。 
    
  1. 查找特定的窗口标题 

  A: 调用vb函数AppActivate语句查找smartcheck窗口并关闭。 
      这种方法见于exdec附带教程中的vb crackme anti3.exe 
      403937: 27 LitVar_Missing        
      40393A: 3a LitVarStr:              ( local_0094 ) Numega SmartCheck 
      40393F: 4e FStVarCopyObj          local_00A4 
      403942: 04 FLdRfVar                local_00A4 
      403945: 0a ImpAdCallFPR4:          rtcAppActivate 
      40394A: 36 FFreeVar 
      403951: 63 LitVar_TRUE            
      403954: 1b LitStr:                %{F4} 
      403957: 0a ImpAdCallFPR4:          rtcSendKeys 
      40395C: 35 FFree1Var              local_00A4 
      40395F: 63 LitVar_TRUE            
      403962: 1b LitStr:                %Y 
      403965: 0a ImpAdCallFPR4:          rtcSendKeys 
      40396A: 35 FFree1Var              local_00A4 

AppActivate "Numega SmartCheck"  尝试激活SmartCheck窗口, "Numega SmartCheck" 
                                是SC的窗口标题 
SendKeys "%{F4}", True          发送ALT+F4关闭smartcheck 
SendKeys "%Y", True              发送ALT+Y确定 


  B: 用API findwindow查找 
    FindWindow(’nmscmw50’,nil);          //nmscmw50系SC类名 
或  FindWindow(nil,’numega SmartCheck’); 


  2. 时间记数 
    通过计算某段代码运行时间来知道有否被load(类似SC、WKT等loader载入目标程序时需要较多时间) 
    
        以下代码见于 斗地主 4.6 Build 438 

      46B729: 0a ImpAdCallFPR4:  rtcgettimer        // (1) 
      .... 
      .... 
      46BEF0: 0a ImpAdCallFPR4:  rtcgettimer        // (2) 
      46BEF5: 6e FLdFPR4                
      46BEF8: af SubR4                              // (2)- (1) 
      46BEF9: ea CR4R4                  
      46BEFA: f4 LitI2_Byte:            0x14  20            
      46BEFC: eb CR8I2                  
      46BEFD: dc GtR4                                // >20秒 
      46BEFE: 1c BranchF:                46BF05          | 
      46BF01: 00 LargeBos                                | 
      46BF03: Lead1/c8 End                      结束  <--  YES 
      46BF05: 00 LargeBos                        继续  <--  NO 
      .... 
      .... 
      46C34F: 0a ImpAdCallFPR4:  rtegettimer        // (3) 
      46C354: 6e FLdFPR4                
      46C357: af SubR4                              // (3)-(1) 
      46C358: ea CR4R4                  
      46C359: f4 LitI2_Byte:            0x14  20 
      46C35B: eb CR8I2                  
      46C35C: dc GtR4                                // >20秒              
      46C35D: 1c BranchF:                46C364          | 
      46C360: 00 LargeBos                                |              
      46C362: Lead1/c8 End                      结束  <--  YES      
      46C364: 00 LargeBos                        继续  <--  NO 


    以上只是讲述了常见的VB anti-loader保护方法;然而,通过使用内联汇编(VB中确实可以不完全实现)或者结构化异常技术,完全能实现更强大的anti功能----有兴趣的话不妨试试aming或我的vb crackme。只是因为目前还没有见到有采用类似技术的共享软件,暂时对此保持沉默。 

 
相关文章
一日一文章
 
一日一软件
一日一动画