首页
社区
课程
招聘
[原创]去除屏幕录像专家录制的exe的多开校验(高手飘过)
发表于: 2009-7-1 16:08 6661

[原创]去除屏幕录像专家录制的exe的多开校验(高手飘过)

2009-7-1 16:08
6661
【文章标题】: 去除屏幕录像专家录制的exe的多开校验(高手飘过)
【文章作者】: wuhanqi
【作者邮箱】: [email=wuhanqi@qq.com]wuhanqi@qq.com[/email]
【软件名称】: 天草的教程
【下载地址】: 自己搜索下载
【作者声明】: 小菜一个.高手别笑话我哦~嘿嘿.
--------------------------------------------------------------------------------
【详细过程】
  今天闲来没事.没事加了个ACprotect壳子想练练手.谁知道.........不会脱= =.忘记了.汗.壳盲啊...
  于是乎又打开天草老大的教程看...额,反正阴差阳错忘记关原来的进程又打开新的录像了...
  谁知道...弹出这么一个框...
 
  然后就告诉你读取声音失败咯..然后教程就没声音了...
  把我吓了一大跳.还以为活见鬼了.好好的教程怎么就没声音了?
  后来检查了一下才发现...原来是自己多开了= =...应该是为了防止翻录吧...才会设置这样一个校验...
  看着挺不爽的.就想试试去除这个校验...
  教程我拿到的没壳...od载入程序..
  由于有failed2的提示.直接搜索字符串"failed2"
  来到如下代码:
  00408105  |.  E8 82B10500   CALL 0046328C
  0040810A  |.  C645 81 00    MOV BYTE PTR SS:[EBP-7F],0
  0040810E  |.  66:C785 7EFFF>MOV WORD PTR SS:[EBP-82],0
  00408117  |.  68 78354800   PUSH 00483578                            ;  ASCII "wb"
  0040811C  |.  FF75 0C       PUSH DWORD PTR SS:[EBP+C]
  0040811F  |.  E8 18CC0500   CALL 00464D3C
  00408124  |.  83C4 08       ADD ESP,8
  00408127      8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX
  0040812D  |.  85C0          TEST EAX,EAX
  0040812F  |.  75 3F         JNZ SHORT 00408170          <<<---有跳转哦~
  00408131  |.  66:C745 94 08>MOV WORD PTR SS:[EBP-6C],8
  00408137  |.  BA 7B354800   MOV EDX,0048357B                         ;  ASCII "failed2"
  0040813C  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
  0040813F  |.  E8 74610600   CALL 0046E2B8
  00408144  |.  FF45 A0       INC DWORD PTR SS:[EBP-60]
  00408147  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00408149  |.  E8 36D10200   CALL 00435284
  0040814E  |.  FF4D A0       DEC DWORD PTR SS:[EBP-60]
  00408151  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
  00408154  |.  BA 02000000   MOV EDX,2
  00408159  |.  E8 12620600   CALL 0046E370
  0040815E  |.  83C8 FF       OR EAX,FFFFFFFF
  00408161  |.  8B55 84       MOV EDX,DWORD PTR SS:[EBP-7C]
  00408164  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
  0040816B  |.  E9 61090000   JMP 00408AD1
  00408170  |>  837D 14 01    CMP DWORD PTR SS:[EBP+14],1
  00408174  |.  0F85 9C020000 JNZ 00408416
  0040817A  |.  FF75 10       PUSH DWORD PTR SS:[EBP+10]

  
  不少人肯定会想...这还不简单...明显有个跳转能跳过去嘛!75→eb不就得了...
  事实可没那么简单...修改了还是会有错的...我们注意一下下面的代码:
  
  0040811F  |.  E8 18CC0500   CALL 00464D3C                            ;  3.这个call出来后EAX值变化咯.
  00408124  |.  83C4 08       ADD ESP,8
  00408127      8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX            ;  2.这里有个把EAX赋值到一个地址的.
  0040812D  |.  85C0          TEST EAX,EAX                             ;  1.比较EAX...
  0040812F  |.  75 3F         JNZ SHORT 00408170

  
  看起来EAX的值是关键了...于是乎先单独F9运行程序.看看寄存器的值:
  
  EAX 00488280 ASCII "??
  ECX 0048D19C 录像19.0048D19C
  EDX 0048D19C 录像19.0048D19C
  EBX 00A722C4
  ESP 0012ACD4
  EBP 0012F48C
  ESI 0012FD2C
  EDI 00000000

  
  第二次先运行一个教程,再用od载入..到同样的位置查看一下寄存器的值:
  EAX 00000000
  ECX 0048D19C 录像19.0048D19C
  EDX 0048D19C 录像19.0048D19C
  EBX 00A722C4
  ESP 0012ACD4
  EBP 0012F48C
  ESI 0012FD2C
  EDI 00000000
  

  很明显吧.EAX的值如果是 00488280的话.程序就可以正常运行了..
  那还不简单?找块空地.
  修改 00408127      8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX   为jmp 00482940
  
  在00482940 处写:
  
  00482940   > \B8 80824800   MOV EAX,00488280                         ;  给 eax赋值.
  00482945   .  8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX            ;  还原代码
  0048294B   .^ E9 DD57F8FF   JMP 0040812D                             ;  跳回去..

  
  这样的话.程序就可以正常多开了.想开多少个开多少个.哈哈~
  
  
  
--------------------------------------------------------------------------------
【经验总结】
  个人感觉去除校验就是来回比较修改前后两个程序.不只只比较跳转之类的.还要比较寄存器关键的值.例如我最近玩的友益文书...就是这样的.
  呵呵.这文章没啥技术含量写了只为给菜鸟们添点思路.不要禁锢思维顺便打发一点时间.
  小菜一个.多多指教了.

--------------------------------------------------------------------------------
【版权声明】: 还不是踩在巨人的肩膀上说话?哪里来的版权.随便怎么样.哈哈~

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
00482940   > \B8 80824800   MOV EAX,00488280                         ;  给 eax赋值.
  00482945   .  8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX            ;  还原代码
 0048294B   .^ E9 DD57F8FF   JMP 0040812D                             ;  跳回去..


看情况返回的应该是地址,这么修改会不会存在跨平台的问题??
2009-7-1 18:43
0
雪    币: 324
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=BlueT;649548]00482940   > \B8 80824800   MOV EAX,00488280                         ;  给 eax赋值.
  00482945   .  8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX         ...[/QUOTE]


晕.的确没考虑到.
关键我现在的条件也不支持跨平台测试啊......
2009-7-2 10:20
0
游客
登录 | 注册 方可回帖
返回
//