我的意思是:当你获得一个PE文件时,有什么方法去,获得它的特征码,并能够唯一确定是该文件。当给你很多PE文件时,该方法也能够行得通。(最好是用C\C++)请各位大哥,帮帮小弟,粘弟这边急用!万分感谢!!!!!

解决方案 »

  1.   

    你表述的和你想的不一样!如果只是确定是不是同一个文件,简单的做hash即可,但是pe特征码确要匹配某一特定特征才可以。
      

  2.   

    http://www.pediy.com看雪论坛里有人贴过.我也下过,不过代码在宿舍,现在没法发给你.
      

  3.   

    参看下:http://www.pediy.com
      

  4.   

    正在学习,提供几个入口特征如下:===============五大语言入口点特征==================
      delphi:
      
        55            PUSH EBP
        8BEC          MOV EBP,ESP
        83C4 F0       ADD ESP,-10
        B8 A86F4B00   MOV EAX,PE.004B6FA8
      
      vc++
         55            PUSH EBP
         8BEC          MOV EBP,ESP
         83EC 44       SUB ESP,44
         56            PUSH ESI
      
      vb
      FF25 6C104000   JMP DWORD PTR DS:[<&MSVBVM60.#100>]      ; MSVBVM60.ThunRTMain
      68 147C4000     PUSH PACKME.00407C14
      E8 F0FFFFFF     CALL <JMP.&MSVBVM60.#100>
      0000            ADD BYTE PTR DS:[EAX],AL
      0000            ADD BYTE PTR DS:[EAX],AL
      0000            ADD BYTE PTR DS:[EAX],AL
      3000            XOR BYTE PTR DS:[EAX],AL
    vb
    00402360    68 2C4D4000     push KillBox.00404D2C                    ; ASCII "VB5!6&*vb6chs.dll"
    00402365    E8 EEFFFFFF     call KillBox.00402358                    ; jmp to msvbvm60.ThunRTMain
    0040236A    0000            add byte ptr ds:[eax],al
    0040236C    0000            add byte ptr ds:[eax],al
    0040236E    0000            add byte ptr ds:[eax],al
    00402370    3000            xor byte ptr ds:[eax],al
    00402372    0000            add byte ptr ds:[eax],al
    00402374    3800            cmp byte ptr ds:[eax],al
    00402376    0000            add byte ptr ds:[eax],al
    00402378    0000            add byte ptr ds:[eax],al
    0040237A    0000            add byte ptr ds:[eax],al
    0040237C    4F              dec edi
    0040237D    C2 F150         retn 50F1
      
      bc++
      0040163C > $ /EB 10         JMP SHORT BCLOCK.0040164E
      0040163E     |66            DB 66                                    ;  CHAR 'f'
      0040163F     |62            DB 62                                    ;  CHAR 'b'
      00401640     |3A            DB 3A                                    ;  CHAR ':'
      00401641     |43            DB 43                                    ;  CHAR 'C'
      00401642     |2B            DB 2B                                    ;  CHAR '+'
      00401643     |2B            DB 2B                                    ;  CHAR '+'
      00401644     |48            DB 48                                    ;  CHAR 'H'
      00401645     |4F            DB 4F                                    ;  CHAR 'O'
      00401646     |4F            DB 4F                                    ;  CHAR 'O'
      00401647     |4B            DB 4B                                    ;  CHAR 'K'
      00401648     |90            NOP
      00401649     |E9            DB E9
      
      dasm:
      
      6A 00         PUSH 0                                   ; /pModule = NULL
      E8 C50A0000   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; \GetModuleHandleA
      A3 0C354000   MOV DWORD PTR DS:[40350C],EAX
      E8 B50A0000   CALL <JMP.&KERNEL32.GetCommandLineA>     ; [GetCommandLineA
      A3 10354000   MOV DWORD PTR DS:[403510],EAX
      6A 0A         PUSH 0A                                  ; /Arg4 = 0000000A
      FF35 10354000 PUSH DWORD PTR DS:[403510
      ##############################################################################################
    tmd壳入口特征
    0041D014 >    B8 00000000       MOV EAX,0                                      ;载入点。注意看这些代码
    0041D019      60                PUSHAD                                                 
    0041D01A      0BC0              OR EAX,EAX                                          ;明眼的就看出是Themida 壳了
    0041D01C      74 68             JE SHORT 无敌外挂.0041D086
    0041D01E      E8 00000000       CALL 无敌外挂.0041D023本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/leitianjun/archive/2009/08/13/4441448.aspx
      

  5.   

    相关PE格式,查看一下罗云彬的PE格式一章节!
      

  6.   

    病毒的话 直接做hash能对付那些所谓不“智能的”,因为病毒可以自动变形。
    如果你急需并 有足够技术的话 你可以看看杀毒软件怎么样做的呵呵如果是一般软件的话 都有哦导入表 导出表之类的 甚至里面有资源信息 找个可以做参考好的方法不多,误判都很高的 呵呵、
    行业内有人愿意出三五万解决找个问题呵呵,当然要求比你的复杂一点就是增加版本兼容性!
      

  7.   


    LS 增加版本兼容性怎么讲? 是比如说QQ每个版本不一样,但可以通过获取一个版本的特征,而同样识别出其他的版本么??