码迷,mamicode.com
首页 > 其他好文 > 详细

PE文件代码膨胀

时间:2018-06-28 19:18:25      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:href   链接   fse   color   --   sub   target   reg   blank   

原文链接 https://bbs.pediy.com/thread-223629.htm

asmjit参考https://www.cnblogs.com/lanrenxinxin/p/5021641.html

1.代码对push/mov/add/sub/cmp指令进行膨胀

2.对push/mov的立即数进行加密

3.跳转call指令转为如下指令进行变形

  /*                                                      <---esp3
    |__| -16             |__| -16              |_reg2_esp0_| -16       |__| -16   
    |__| -12             |__| -12              |_reg1_| -12            |__| -12    
    |__| -8   <---esp1   |__| -8   <---esp2    |_reg2_| -8             |__| -8       <---esp4
    |_reg2_| -4<--esp0   |_Jmp_addr_| -4       |_Jmp_addr_| -4         |_Jmp_addr_| -4 
    |_reg1_|  0          |_reg1_|  0           |_reg1_|  0             |_ret_addr_|  0

    push reg1
    push reg2                      ;---->esp1
    mov  reg2, jmp_offset
    add  reg2, addr_table_base     ;根据地址表索引找到正确偏移值
    mov  reg1, dword ptr ds:[reg2]
    add  reg1, base                ;加上基地址, 得到目标地址
    
    pop  reg2
    sub  esp, 0x4
    mov  reg1, dword ptr ds:[reg1]
    mov  dword ptr ss:[esp], reg1  ;写入jmp地址, 类似于push指令
                                   ;---->esp2

    push reg2                      ;保存原始的reg2值
    mov  reg2, esp
    add  reg2, 0x8
    mov  reg1, dword ptr ds:[reg2] ;
    push reg1                      ;保存原始的reg1值
    push reg2                      ;保存0处的esp值
                                   ;---->esp3
    mov  reg2, no_jmp_offset
    mov  reg2, addr_table_base
    mov  reg1, dword ptr ds:[reg2] 
    pop  reg2                      ;获取0出的esp值
    mov  dword ptr ds:[reg2], reg1 ;写入返回地址

    pop  reg1                      ;恢复reg1, reg2原始值
    pop  reg2                      ;---->esp4

    retn                           ;retn 跳转到jmp_addr地址
    */

 

PE文件代码膨胀

标签:href   链接   fse   color   --   sub   target   reg   blank   

原文地址:https://www.cnblogs.com/aliflycoris/p/9240035.html

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