码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi 编译出来的程序被小红伞报病毒 TR/Spy.Banker.Gen4 [trojan]

时间:2016-09-02 20:11:11      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

      今天碰到非常奇怪的问题,正常开发的单元代码,在A程序编译出来没有问题,将相同的单元引用到B程序编译出来就被小红伞报病毒TR/Spy.Banker.Gen4 [trojan],自动隔离删除。

      今时今日的防病毒软件,实在是让人纠结不已,今天一个下午的排查代码,最后发现问题居然是出现在调用Windows API的地方,总体有两处代码会出现报病毒:

问题代码1:

//单元1声明引用API函数
function GetCPInfoEx(CodePage: UINT; Flags:DWORD;
  var lpCPInfo: TCPInfoEx):BOOL;stdcall;
  external kernel32 Name
  {$IFDEF UNICODE}
  GetCPInfoExW;
  {$ELSE}
  GetCPInfoExA;
  {$ENDIF}

//单元2
  // 这里一旦调用 单元1的GetCPInfoEx,则马上报病毒,
  if GetCPInfoEx(FCodePage, 0, LCPInfo) then

  // 而修改为调用Windows单元的 GetCPInfoEx 则不会
  if Windows.GetCPInfoEx(FCodePage, 0, LCPInfo) then


// 总得来说非常奇怪,难道在单元1引用GetCPInfoEx就会生成病毒特征码?

问题代码2:

单元3:
//一旦调用EnumSystemCodePages则马上报病毒
Windows.EnumSystemCodePages(@DoEnumCodePageCallBackEx, dwFlag);

 

最后实在没辙了,全部改为动态加载DLL并调用API。

Delphi 编译出来的程序被小红伞报病毒 TR/Spy.Banker.Gen4 [trojan]

标签:

原文地址:http://www.cnblogs.com/caibirdy1985/p/5834587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!