-
-
[原创]我的第一个脚本-- krypton的脱壳脚本
-
发表于:
2009-5-11 09:49
5175
-
[原创]我的第一个脚本-- krypton的脱壳脚本
前些天我全程分析了krypton这个老壳
文章论坛地址:
http://bbs.pediy.com/showthread.php?t=87760&highlight=
另外逛论坛的时候 我发现CCDebuger大牛已经在一个求助帖写出来了 对比一下 发现我写的脚本和大牛的只是定位代码有些不一样 有的抄的嫌疑 我写了详细的注释 希望像我一样的菜鸟能结合我前面分析壳的文章 熟悉一下写脚本的思路
我最近在学习脚本 这是我第一个脚本:
(试炼品见附件)
var temp
bphwcall
dbh
/*
壳程序先分配内存然后进行解码,分配内存地址存放到esi中
这句jmp esi是为了跳到这段代码中
*/
findop eip, #FFE6# ;找到 FFE6 jmp esi
mov temp, $RESULT
bp temp
esto
bc
sto ;f8
/*
如果不对下面的代码下断的话,我发现定位加密输入表的指令定位的不对,如果过了下面的代码之后,就可以定位到
下面代码就是下面的代码:
003A28A6 FF95 50BE4100 call dword ptr ss:[ebp+41BE50] ; kernel32.GetProcAddress
003A28AC 83BD 6F714000 00 cmp dword ptr ss:[ebp+40716F],0
*/
find eip, #FF95????????83BD#
mov temp, $RESULT
bp temp
esto
bc
find eip, #8B85????????EB#
mov temp, $RESULT
add temp, 6
/*查找以下命令:
003a30D5 8B85 A6714000 MOV EAX,DWORD PTR SS:[EBP+4071A6] ; 输入表地址写入的,NOP掉
*/
find temp, #8B85????????EB#
mov temp, $RESULT
mov [temp], #909090909090#
/*查找以下命令:
003A3A5E - FFE2 jmp edx ; KRYPTON.00401000 跳向oep
003A3A60 51 push ecx
*/
find temp, #FFE251#
mov temp, $RESULT
bphws temp, "x"
esto
bphwc
sto
cmt eip, " OEP,请用 IR 重建输入表"
ret
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!