感谢@丁丁网络验证 提供的思路
刚考完期中考试,学科一半一半差。。。 挂了3门。考完后也发烧了。。。真是倒霉啊。。。这里希望竹子师傅手术成功。。。
脚本的使用条件。。程序必须无壳。。其实也是比较无聊写出来的一个脚本。
你可能会说现在的作者不加壳几乎看不到。。。好吧,那就无视我这个脚本。。
如果无法正常破解可能是你OllyScript插件的版本太低,更新插件即可!
[Asm] 纯文本查看 复制代码 /*-------------------------------------------
Written by 52KK
条件:程序必须无壳
0x1 定位特征码取成功数据
0x2 计算成功数据结束地址
0x3 Patch成功数据
--------------------------------------------*/
/* 定位特征码取成功数据 */
var ep
mov ep,eip
find 401000,#558BEC81EC1C000000C745FC00000000C745F8000000006808000000#
var head
mov head,$RESULT
find head,#C20800#
var foot
mov foot,$RESULT
bp foot
MSG "特征码定位完毕!程序即将运行,点击注册或试用按钮后脚本将继续运行!"
run
run
var dhead
mov dhead,eax
bc foot
/* 计算成功数据结束地址 */
find dhead,#5BBFAA3A#
var dfoot
mov dfoot,$RESULT
add dfoot,4
/* Patch成功数据 */
find 401000,#000000000000000000000000000000000000000000000000#
var empty
mov empty,$RESULT
add empty,2
var count
mov count,dfoot
sub count,dhead
dec count
var i
mov i,0
var tmpdata
var tmpaddr
mov tmpdata,dhead
mov tmpaddr,empty
Jcxh: //计次循环
cmp count,i
je PatchCall
log i
log [tmpdata]
cmp i,14
je PatchTime
Jcxh2:
mov [tmpaddr],[tmpdata]
inc i
inc tmpaddr
inc tmpdata
jmp Jcxh
PatchTime:
mov [tmpdata],#39393939#
jmp Jcxh2
PatchCall:
eval "push {empty}"
asm head,$RESULT
mov tmpaddr,head
add tmpaddr,5
asm tmpaddr,"pop eax"
inc tmpaddr
asm tmpaddr,"retn 8"
MSG "破解完毕!请手动保存文件(Shift + 左键 可选取大量代码)!"
Output:
/* 调试输出 */
eval "特征码段首是 {head}"
log $RESULT
eval "特征码段尾地址是 {foot}"
log $RESULT
eval "成功数据起始地址是 {dhead}"
log $RESULT
eval "成功数据结束地址是 {dfoot}"
log $RESULT
eval "空白地址是 {empty}"
log $RESULT
End:
ret //结束脚本
使用教程:http://pan.baidu.com/s/1eQxk71C
|