聚合Vip网络社区 集合 HK共享吧 合购VIP等精品教程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

关闭
聚合Vip社区
欢迎QQ或来电咨询
工作时间:周一至周五
AM9:00-PM22:00
淘宝店铺 淘宝皇冠店铺
论坛邀请码
查看: 1763|回复: 56

内存补丁编写之金盾V2016机器码Patch(有码)

  [复制链接]

1930

主题

22

听众

8875

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    慵懒
    2015-8-3 14:17
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2015-8-24 13:59:17 |显示全部楼层

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    立即注册 已有账号?点击登录 或者 用QQ帐号登录

    x
    免责声明:以下资源由聚合VIP资源网整理提供,本资源来源于网络仅供用户学习交流之用,版权归资源方所有,本网站不承担任何法律风险,请自觉在下载学习后24小时内删除,不得用作商业用途;如果喜欢请购买正版资源。谢谢

    资料名称:内存补丁编写之金盾V2016机器码Patch(有码)

    此资料包含以下内容:
    一.由于程序加了vmp,所以得找一个能让它跑起来的OD.然后定位到关键点上.有如下步骤


    加密软件获取方法去金盾官网下载或者我的网盘下载(不知道为什么会自动取消分享):http://pan.baidu.com/share/link?shar...&uk=3207566814)

    加密视频获取方法 你可以随便找一个avi格式或其它格式的小片来自己加密,如下图所示:

    加密视频完后就可以创建播放密码了。。机器码你可以输入你想要的,然后就可以测式了



    载入 专用播放器V2016S 试用.exe,运行,暂停,执行到用户代码,如下图所示:


    查找 unicode 字符串

    找到 -00000的地方,下断点,运行, 如下图所示:



    然后找到开头地址,补丁程序中搜索特征码的开始地址,

    选择文件,加密后的视频,这个时候就会断在出现机器码的地方(EDX),然后就可以替换掉:


    上面调试过程己经清楚了,下面我们就开始写补丁了:

    首先hook CreateFileW来判断程序是否己经解码完成>

    代码:
    //Hook CreateFileW DWORD WINAPI Hook(){  HMODULE handle = LoadLibrary("kernel32.dll");  if (NULL == handle)  {    MessageBox(NULL,"加载动态库出错.","提示",MB_OK);    return 0;  }  g_My_CreateFileW = (DWORD)GetProcAddress(handle,"CreateFileW");  if (NULL == g_My_CreateFileW)  {    MessageBox(NULL,"获取函数地址出错.","提示",MB_OK);    return 0;  }  //目标地址 - 源地址 - 5   BYTE szJump_CreateFileW[5] = {0xe9};  DWORD dwJump_CreateFileW = (DWORD)My_CreateFileW - g_My_CreateFileW - 5;  memcpy(&szJump_CreateFileW[1], &dwJump_CreateFileW, 4);  DWORD dwOldProtect = 0;  VirtualProtect((void*)g_My_CreateFileW, 0x1000, PAGE_EXECUTE_READWRITE, &dwOldProtect);  memcpy((void*)g_My_CreateFileW, szJump_CreateFileW, 5);  g_Old_CreateFileW = g_My_CreateFileW + 5;  return 1;}

    解码后就搜索持征码来获得机器出现的地方

    代码:
    //搜索特征码 ://StartAddress:开始搜索的地址 code:特征码 len:特征码长度DWORD SearchSignature(ULONG StartAddress,BYTE * code, DWORD len){  ULONG  u_index;  BYTE  *p = (BYTE*)StartAddress;  for (u_index = 0;u_index < 0x300;u_index++)  {    if ( memcmp(p,code, len) == 0 )    {      return (DWORD)p+len;    }    p++;  }  return 0;}

    然后就开始Patch机器码了

    代码:
    // VEH回调函数中Patch机器码LONG WINAPI My_VectoredHandler(              PEXCEPTION_POINTERS ExceptionInfo              ){  DWORD MAddress = 0;  //判断是否为我们设置的异常地址  if(ExceptionInfo->ExceptionRecord->ExceptionAddress == (PVOID)g_hbAddress1)  {    //下面开始Patch 机器码    MAddress = *(DWORD*)(ExceptionInfo->ContextRecord->Ebp-4);    if (Machinecode[0]  != *(BYTE*)MAddress )    {      int len = sizeof(Machinecode);      memcpy((BYTE*)MAddress,Machinecode,len);    }    // 修改当前异常中断的EIP    ExceptionInfo->ContextRecord->Eip =g_hbAddress1+3;//修改完成后让程序继续执行    // 处理异常.    return EXCEPTION_CONTINUE_EXECUTION;  }  else if (ExceptionInfo->ExceptionRecord->ExceptionAddress == (PVOID)g_hbAddress2)  {    Vehindex++;    //下面开始Patch 机器码    if (3 <= Vehindex && 5 != Vehindex)    {      int len = sizeof(Machinecode);      if (Machinecode[0]  != *(BYTE*)ExceptionInfo->ContextRecord->Edx)      {        memcpy((BYTE*)ExceptionInfo->ContextRecord->Edx,Machinecode,len);              }          }    // 修改当前异常中断的EIP    ExceptionInfo->ContextRecord->Eip = g_hbAddress2+1;//修改完成后让程序继续执行    // 处理异常.    return EXCEPTION_CONTINUE_EXECUTION;  }  return EXCEPTION_CONTINUE_SEARCH;}

    补丁效果如下:
    没有放补丁时

    放入补丁后,(其中ws2_32.dll为补丁, Mcode.ini为要替换的机器码)


    视频可以正常播放


    回复

    使用道具 举报

    14

    主题

    1

    听众

    578

    积分

    高级会员

    Rank: 4

    该用户从未签到

    发表于 2015-8-24 13:59:21 |显示全部楼层
    沙发!沙发!沙发!
    回复

    使用道具 举报

    10

    主题

    0

    听众

    481

    积分

    中级会员

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2015-8-24 17:53:15 |显示全部楼层
    说的真有道理啊!
    回复

    使用道具 举报

    14

    主题

    0

    听众

    623

    积分

    高级会员

    Rank: 4

    该用户从未签到

    发表于 2015-8-25 02:38:31 |显示全部楼层
    在撸一遍。。。
    回复

    使用道具 举报

    21

    主题

    0

    听众

    487

    积分

    中级会员

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2015-8-25 07:15:28 |显示全部楼层
    顶顶更健康
    回复

    使用道具 举报

    12

    主题

    0

    听众

    485

    积分

    中级会员

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2015-8-25 16:24:31 |显示全部楼层
    有空一起交流一下
    回复

    使用道具 举报

    14

    主题

    0

    听众

    570

    积分

    高级会员

    Rank: 4

    该用户从未签到

    发表于 2015-8-25 17:44:01 |显示全部楼层
    向楼主学习
    回复

    使用道具 举报

    10

    主题

    1

    听众

    439

    积分

    中级会员

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2015-8-25 19:51:14 |显示全部楼层
    这个贴不错!!!!
    回复

    使用道具 举报

    14

    主题

    0

    听众

    519

    积分

    高级会员

    Rank: 4

    该用户从未签到

    发表于 2015-8-25 20:08:36 |显示全部楼层
    沙发???
    回复

    使用道具 举报

    10

    主题

    0

    听众

    637

    积分

    高级会员

    Rank: 4

    该用户从未签到

    发表于 2015-8-25 21:07:48 |显示全部楼层
    前排支持下了哦~
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    回帖奖励

    [详情]

  • * 每天自己主题被回复3次可获得额外2金钱奖励。
  • * 每天回复他人主题5次可获得额外3贡献的奖励。
  • * 奖励每天都可领取,一定要多参与论坛讨论哦。
  • * 同一主题的重复回复不计。
  • Archiver|手机版|聚合Vip网络社区 ( 鲁ICP备14030129号-2 )Discuz超级管家   

    GMT+8, 2018-12-10 03:15 , Processed in 1.093743 second(s), 57 queries .

    Powered by Discuz! X2.5

    © 2001-2018 Comsenz Inc. Template by A3cn

    回顶部