小隐的博客

人生在世,笑饮一生
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

金山毒霸坠落了!

Posted on 2012-01-07 11:44  隐客  阅读(475)  评论(1编辑  收藏  举报

一直以来,觉得金山还是比较好用的,起码占用的系统资源还是比较满意的,不过今天偶然再一次证明云查杀都是忽悠人的!!

 

今天本来用VB6打算写个小工具,主要在跟随鼠标在屏幕上画一条线,写完后一运行,悲剧了,被金山报毒!

第一反应是VB6的编译器出了问题,以前遇到过delphi这样的问题,正在考虑要重装VB6时,突然想到,为何不写一个空代码的程序呢

于是什么都不干,新建了一个工程,编译成exe,用金山查杀,发现没有问题。

这样就排除了前面的想法。

于是回到代码 ,把某些API注释掉反复测试,发现了问题出在GetCursorPos 这个地方。。

 

也就是说金山毒霸是根据API来判断是否是病毒的。我的天,这样的杀毒软件也太好写了吧!!!

 

然后用云查杀,一样的结果,金山在心中的形象让我寒。。。

 

VB6所有代码贴出:

Private Const SWP_NOMOVE = 2
Private Const SWP_NOSIZE = 1
Private Const Flags = SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Dim p As POINTAPI


Public Function SetTopMostWindow(tHWND As Long, Topmost As Boolean) As Long
If Topmost = True Then ''Make the window topmost
SetTopMostWindow = SetWindowPos(tHWND, HWND_TOPMOST, 0, 0, 0, 0, Flags)
Else
SetTopMostWindow = SetWindowPos(tHWND, HWND_NOTOPMOST, 0, 0, 0, 0, Flags)
SetTopMostWindow = False
End If
End Function
Private Sub Form_Load()
Me.Height = 10
SetTopMostWindow Me.hwnd, True
Me.Width = Screen.Width / 2
'Me.Left = Screen.Width / 2
Timer1.Interval = 50
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
GetCursorPos p
Me.Top = p.y * Screen.TwipsPerPixelY + 15
Me.Left = p.x * Screen.TwipsPerPixelX - Me.Width / 3
End Sub



QQ交流