解决ZP壳在WIN7下解码出错。大牛飘过。
本帖最后由 a13686593572 于 2013-2-13 14:14 编辑首先多谢大牛Kido、RedAngel丶、Hmily(时间顺序...)大牛的热心回复,问题已经解决了。
【吾爱第三届动画大赛参赛作品】- ZP1.4.9全保护脱壳
这个教程里面,在解码那里断在 xor eax,eax(第一次),在ESP指针指向的地址填KEY后运行后又断在xor eax,eax(第二次) 这里但是 RedAngel丶这次不填了,而是再次运行,断在xor eax,eax (第三次),又填了。这样反复填一次隔一次再填。然后小菜就开始在WIN7上面一步一步照着做。程序果断崩溃了。然后再看了反复看了几遍解码的那部分,发现隔开的那一次填KEY的地方的值为16字节个 00 :
而我的不是:
填完KEY运行后继续断下来,我就CTRL+G 到00401000 去看,是解码成功的。然后再次运行,断下后又跑到00401000去看,果断的变为乱码了。
后面我就想应该是这个问题了,既然这个地方是放KEY的,现在这个地方有了值但不是正确的KEY,那肯定要进行错误的解码了,然后每填一次KEY运行断下后就把这16字节给00填充掉,这一填充完运行,程序立马就崩溃了,这样不对。
重新想,反正这填完KEY后断下的是一次错误解码,那我不让你解码不就行了
重来...
填完KEY运行断下,因为下面的代码就是区段进行异或的代码了,然后看 xor eax,eax 下面有个 cmp dword ptr ss:,ecx 比较和一个 jle (小于或等于时跳转)的跳转,单步跟下去,发现 jle 跳转没实现,那不跳的话势必要对区段进行异或,这第二次异或解码,区段就变成乱码。
Jle 可以跳过循环异或,这时修Z改标志位改为1。让跳转实现,继续运行断在xor eax,eax 后到 00401000 看看,代码正常。
然后,对其他区段解码时依旧如此,填KEY运行断在 xor eax,eax,单步到 jle 修改标志让跳转实现。
最后,程序运行起来了。
----------------------------------------------------------
刚刚又拿【吾爱第三届动画大赛参赛作品】- ZP1.4.9全保护脱壳 里面的例子拿出来弄,发现原来的KEY也是教程里面找到的KEY:E6 D9 06 44 40 49 B1 CA 7F B4 26 39 ED 46 5A D2
不能用了,所以自己重新来找。KEY变成了:9E 6A 2E E3 FE 7F D8 DC 29 4B 54 7A 36 59 53 ED依旧是在WIN7上。
-----------------------------------------------------------------------
ByPassZP1.4.9带源码
http://www.52pojie.cn/thread-184128-1-1.html
仰望大牛也收脱ZP么 1354669803 发表于 2013-2-13 13:57 static/image/common/back.gif
仰望大牛也收脱ZP么
手脱滴不会.. 学习中 ,不断进步 没事了 总会来玩玩 路过哈哈。来看看 膜拜大大手脱ZP 你强制修改后,代码只解码一次
填充的key是让代码一次性解码成功的
RA的是按照原来流程,多次解码,填充进去是最后一次解码正确的key
你们两个的key异或一下就可以得到你没执行而RA执行了的那次解码的key= =
我猜的
你可以试试
页:
[1]