📄 hying v0.4x.txt
字号:
/*
//////////////////////////////////////////////////
Hying'pelock unpack script v0.1
Author: loveboom
Email : loveboom#163.com
OS : WinXP sp1,Ollydbg 1.1,OllyScript v0.92
Date : 2005-3-20
Action: 修复IAT,停在oep处.只对旧版本有效
Config: Ignore all exceptions
Note : If you have one or more question, email me please,thank you!
//////////////////////////////////////////////////
*/
var addr
var cbase
var csize
var jmpaddr
var jmptovalue
var hmem
start:
msgyn "setting:Ignore all exceptions,continue?"
cmp $RESULT,0
jne lbl1
ret
lbl1:
gmi eip,CODEBASE //获取code段信息
mov cbase,$RESULT
gmi eip,CODESIZE
mov csize,$RESULT
lblrun1:
bprm cbase,csize
eob lbl2
eoe lblabort
esto
lbl2:
bpmc
cob
coe
lblbpAPI1:
gpa "VirtualAlloc","kernel32.dll"
bprm $RESULT,2 //在VirtualAlloc的前四个字节下内存访问断点
run
lbl3:
bpmc
find eip,#C60768897701C64705C383C706#,
/*
查找以下语句:
C607 68 MOV BYTE PTR DS:[EDI],68
8977 01 MOV DWORD PTR DS:[EDI+1],ESI
C647 05 C3 MOV BYTE PTR DS:[EDI+5],0C3
83C7 06 ADD EDI,6
把api直接变成push api retn的方式
*/
cmp $RESULT,0
je lblabort
mov jmpaddr,eip
fill jmpaddr,1,E9
inc jmpaddr
mov jmptovalue,$RESULT
sub jmptovalue,jmpaddr
sub jmptovalue,4
mov [jmpaddr],jmptovalue //跳过抽api代码
lblmsg1:
msgyn "Try fix IAT?" //判断是否要修复api
cmp $RESULT,0
je lblgotoOEP
gpa "GetModuleHandleA","kernel32.dll"
go $RESULT
rtu
lbl4:
find eip,#66C707FF35C7470681342400894702C6470DC3#
/*
查找以下命令:
66:C707 FF35 MOV WORD PTR DS:[EDI],35FF
C747 06 81342400 MOV DWORD PTR DS:[EDI+6],243481
8947 02 MOV DWORD PTR DS:[EDI+2],EAX
C647 0D C3 MOV BYTE PTR DS:[EDI+D],0C3
*/
cmp $RESULT,0
je lblabort
mov jmpaddr,$RESULT
bp jmpaddr
eob lbl5
eoe lblgotoOEP
run
lbl5:
bc jmpaddr
cob
coe
exec
pushad
push 0FF //分配空间
push 40
call GlobalAlloc
ende
mov jmptovalue,eax
mov hmem,eax //保存申请的空间地址
exec
popad //还原现场
ende
add jmpaddr,0c
fill jmpaddr,1,e8
sub jmptovalue,jmpaddr
sub jmptovalue,5
inc jmpaddr
mov [jmpaddr],jmptovalue
add jmpaddr,4
fill jmpaddr,2,90
mov [hmem],#894702C7470D83C404C3C3#
/*
修复成以下方式:
push [xx]
xor [esp],xorkey
add esp,4
ret
*/
lbl6:
gpa "lstrcmpiA","kernel32.dll"
mov addr,$RESULT
mov [addr],#B8FFFFFFFFC20800#
lblgotoOEP:
esto
esto
lbl7:
bprm cbase,csize
esto
lbl8:
bpmc
cmp hmem,0
je lblend
exec
pushad
push {hmem}
call GlobalFree
popad
ende
lblend:
cmt eip,"OEP"
ret
lblabort:
msg "Error,script aborted,maybe target is not protect by hying's arm v0.4x or you forgot ignore all exceptions."
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -