注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

ms14-084匹配数补丁添加的地方  

2014-12-16 13:49:42|  分类: 原理分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
搜索了新旧补丁的匹配数相关地方,并重合对比,发现如下地方添加了条件。
旧版:
      if ( v36 )
      {
        do
        {
          v15 = v43;
          if ( (unsigned int)v43 >= 0x10 )
            v15 = 16;
          v16 = 0;
          if ( v15 )
          {
            do
            {
              (*(int (__stdcall **)(_DWORD))(**((_DWORD **)v36 + v16 + 1) + 8))(*((_DWORD *)v36 + v16 + 1));
              ++v16;
            }
            while ( v16 < v15 );
          }
          v34 = *(void **)v36;
          v35 = v36;
          v36 = *(void **)v36;
          operator delete(v35);
        }
        while ( v34 );
      }

新版:
      if ( v36 )
      {
        do
        {
          v15 = v43;
          if ( (unsigned int)v43 >= 0x10 )
            v15 = 16;
          v16 = 0;
          if ( v15 )
          {
            do
            {
              (*(int (__stdcall **)(_DWORD))(**((_DWORD **)v36 + v16 + 1) + 8))(*((_DWORD *)v36 + v16 + 1));
              ++v16;
            }
            while ( v16 < v15 );
          }
          v17 = *(void **)v36;
          v35 = v36;
          v36 = *(void **)v36;
          operator delete(v35);
【新增开始】
          if ( (unsigned int)v43 < 0x10 )
            break;
          v43 -= 16;
【新增结束】
        }
        while ( v17 );
      }

如下图:
ms14-084匹配数补丁添加的地方 - appall - 且行且记录
 
ms14-084匹配数补丁添加的地方 - appall - 且行且记录
 

【2014.12.22】补充完整的比较
用FC /N 命令比较了两者的反汇编C函数
差异整理后如下:
正在比较文件 C:\IDA\VBSCRIPT\2K3SP2\KB2909210.c 和 C:\IDA\VBSCRIPT\2K3SP2\KB3012176.C

***** C:\IDA\VBSCRIPT\2K3SP2\KB2909210.c
  104:        if ( (unsigned int)a1 >= 0x10 )
  105:        {
  106:          v10 = operator new(0x44u);
  107:          *v37 = v10;
***** C:\IDA\VBSCRIPT\2K3SP2\KB3012176.C
  104:        if ( (unsigned int)a1 < 0x10 )
  105:        {
  106:          v10 = v47;
  107:        }
  108:        else
  109:        {
  110:          if ( operator new(0x44u) )
  111:            v10 = (void *)sub_7337D513();
  112:          else
  113:            v10 = 0;
  114:          *v37 = v10;
*****

***** C:\IDA\VBSCRIPT\2K3SP2\KB2909210.c
  174:        v31 = *(_DWORD *)v38;
  175:        v40 = 0;
***** C:\IDA\VBSCRIPT\2K3SP2\KB3012176.C
  181:        v31 = *(_DWORD *)v38;
  182:        v4 = 0;
  183:        v40 = 0;
*****

***** C:\IDA\VBSCRIPT\2K3SP2\KB2909210.c
  177:        (*(int (__stdcall **)(int))(*(_DWORD *)v30 + 8))(v30);
  178:        v4 = 0;
  179:      }
***** C:\IDA\VBSCRIPT\2K3SP2\KB3012176.C
  185:        (*(int (__stdcall **)(int))(*(_DWORD *)v30 + 8))(v30);
  186:      }
*****

***** C:\IDA\VBSCRIPT\2K3SP2\KB2909210.c
  235:            operator delete(v35);
  236:          }
  237:          while ( v34 );
  238:        }
***** C:\IDA\VBSCRIPT\2K3SP2\KB3012176.C
  242:            operator delete(v35);
  243:            if ( (unsigned int)v43 < 0x10 )
  244:              break;
  245:            v43 -= 16;
  246:          }
  247:          while ( v17 );
  248:        }
*****

  评论这张
 
阅读(71)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017