去除屏幕录像专家录制的exe的多开校验(高手飘过)
【文章标题】: 去除屏幕录像专家录制的exe的多开校验(高手飘过)【文章作者】: wuhanqi
【作者邮箱】: wuhanqi@qq.com
【软件名称】: 天草的教程
【下载地址】: 自己搜索下载
【作者声明】: 小菜一个.高手别笑话我哦~嘿嘿.
--------------------------------------------------------------------------------
【详细过程】
今天闲来没事.没事加了个ACprotect壳子想练练手.谁知道.........不会脱= =.忘记了.汗.壳盲啊...
于是乎又打开天草老大的教程看...额,反正阴差阳错忘记关原来的进程又打开新的录像了...
谁知道...弹出这么一个框...
然后就告诉你读取声音失败咯..然后教程就没声音了...
把我吓了一大跳.还以为活见鬼了.好好的教程怎么就没声音了?
后来检查了一下才发现...原来是自己多开了= =...应该是为了防止翻录吧...才会设置这样一个校验...
看着挺不爽的.就想试试去除这个校验...
教程我拿到的没壳...od载入程序..
由于有failed2的提示.直接搜索字符串"failed2"
来到如下代码:00408105|.E8 82B10500 CALL 0046328C
0040810A|.C645 81 00 MOV BYTE PTR SS:,0
0040810E|.66:C785 7EFFF>MOV WORD PTR SS:,0
00408117|.68 78354800 PUSH 00483578 ;ASCII "wb"
0040811C|.FF75 0C PUSH DWORD PTR SS:
0040811F|.E8 18CC0500 CALL 00464D3C
00408124|.83C4 08 ADD ESP,8
00408127 8985 74FFFFFF MOV DWORD PTR SS:,EAX
0040812D|.85C0 TEST EAX,EAX
0040812F|.75 3F JNZ SHORT 00408170 <<<---有跳转哦~
00408131|.66:C745 94 08>MOV WORD PTR SS:,8
00408137|.BA 7B354800 MOV EDX,0048357B ;ASCII "failed2"
0040813C|.8D45 FC LEA EAX,DWORD PTR SS:
0040813F|.E8 74610600 CALL 0046E2B8
00408144|.FF45 A0 INC DWORD PTR SS:
00408147|.8B00 MOV EAX,DWORD PTR DS:
00408149|.E8 36D10200 CALL 00435284
0040814E|.FF4D A0 DEC DWORD PTR SS:
00408151|.8D45 FC LEA EAX,DWORD PTR SS:
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:
00408164|.64:8915 00000>MOV DWORD PTR FS:,EDX
0040816B|.E9 61090000 JMP 00408AD1
00408170|>837D 14 01 CMP DWORD PTR SS:,1
00408174|.0F85 9C020000 JNZ 00408416
0040817A|.FF75 10 PUSH DWORD PTR SS:不少人肯定会想...这还不简单...明显有个跳转能跳过去嘛!75→eb不就得了...
事实可没那么简单...修改了还是会有错的...我们注意一下下面的代码:0040811F|.E8 18CC0500 CALL 00464D3C ;3.这个call出来后EAX值变化咯.
00408124|.83C4 08 ADD ESP,8
00408127 8985 74FFFFFF MOV DWORD PTR SS:,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:,EAX 为jmp 00482940
在00482940 处写:00482940 > \B8 80824800 MOV EAX,00488280 ;给 eax赋值.
00482945 .8985 74FFFFFF MOV DWORD PTR SS:,EAX ;还原代码
0048294B .^ E9 DD57F8FF JMP 0040812D ;跳回去..这样的话.程序就可以正常多开了.想开多少个开多少个.哈哈~
--------------------------------------------------------------------------------
【经验总结】
个人感觉去除校验就是来回比较修改前后两个程序.不只只比较跳转之类的.还要比较寄存器关键的值.例如我最近玩的友益文书...就是这样的.
呵呵.算是多一种思路吧.小菜一个.多多指教了.:loveliness:
--------------------------------------------------------------------------------
【版权声明】: 还不是踩在巨人的肩膀上说话?哪里来的版权.随便怎么样.哈哈~
2009年06月30日 15:06:45 谢谢提供经验,我正努力学习 寫的不錯,分析的更不錯 支持你一下,不错啊! 看了这样的文章,我这样的小菜要努力了。。 linholer 大侠已经做出了破解版本呀 学习一下,谢谢了 谢谢提供经验,我正努力学习 不错啊~~~好好学学.
页:
[1]
2