首页
社区
课程
招聘
yoda's cryptor 1.x / modified之QQKAV
发表于: 2006-8-20 20:04 5715

yoda's cryptor 1.x / modified之QQKAV

2006-8-20 20:04
5715
文章标题:QQKAV脱壳
软件名称:QQKAV
保护方式:yoda's cryptor 1.x / modified
使用工具:od LordPE v1.40
软件大小:486K
作者声明:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
软件下载地址:http://www.jsing.net/soft/qqkav.exe

脱壳篇

载入程序来到这里

005DD060 >  60              PUSHAD
005DD061    E8 00000000     CALL qqkav.005DD066
005DD066    5D              POP EBP
005DD067    81ED 55204000   SUB EBP,qqkav.00402055
005DD06D    B9 7B090000     MOV ECX,97B
005DD072    8DBD 9D204000   LEA EDI,DWORD PTR SS:[EBP+40209D]
005DD078    8BF7            MOV ESI,EDI
005DD07A    AC              LODS BYTE PTR DS:[ESI]
005DD07B    2C 59           SUB AL,59
005DD07D    FEC8            DEC AL
005DD07F    EB 01           JMP SHORT qqkav.005DD082

根据邪秀才上次讲过,先看看程序起动过程,一次INT3,一次非法访问内存,
忽略其它的异常,shift+f9两次,到最后一次异常处

005DD769    0000            ADD BYTE PTR DS:[EAX],AL
005DD76B    0000            ADD BYTE PTR DS:[EAX],AL
005DD76D    0000            ADD BYTE PTR DS:[EAX],AL
005DD76F    0000            ADD BYTE PTR DS:[EAX],AL
005DD771    0000            ADD BYTE PTR DS:[EAX],AL
005DD773    0000            ADD BYTE PTR DS:[EAX],AL
005DD775    0000            ADD BYTE PTR DS:[EAX],AL
005DD777    0000            ADD BYTE PTR DS:[EAX],AL

看堆栈窗口

0012FFBC   0012FFE0  指向下一个 SEH 记录的指针
0012FFC0   005DD70C  SE处理程序
0012FFC4   7C816D4F  返回到 kernel32.7C816D4F
0012FFC8   7C930738  ntdll.7C930738
0012FFCC   FFFFFFFF
0012FFD0   7FFDD000

在SE处下断,来到005DD70C处

005DD70C    55              PUSH EBP
005DD70D    8BEC            MOV EBP,ESP
005DD70F    57              PUSH EDI
005DD710    8B45 10         MOV EAX,DWORD PTR SS:[EBP+10]
005DD713    8BB8 C4000000   MOV EDI,DWORD PTR DS:[EAX+C4]
005DD719    FF37            PUSH DWORD PTR DS:[EDI]
005DD71B    33FF            XOR EDI,EDI
005DD71D    64:8F07         POP DWORD PTR FS:[EDI]
005DD720    8380 C4000000 0>ADD DWORD PTR DS:[EAX+C4],8
005DD727    8BB8 A4000000   MOV EDI,DWORD PTR DS:[EAX+A4]
005DD72D    C1C7 07         ROL EDI,7
005DD730    89B8 B8000000   MOV DWORD PTR DS:[EAX+B8],EDI
005DD736    B8 00000000     MOV EAX,0
005DD73B    5F              POP EDI
005DD73C    C9              LEAVE
005DD73D    C3              RETN

呵呵,我们F8往下走看看

005DD730    89B8 B8000000   MOV DWORD PTR DS:[EAX+B8],EDI
005DD736    B8 00000000     MOV EAX,0
005DD73B    5F              POP EDI                               ; qqkav.00508200
005DD73C    C9              LEAVE
005DD73D    C3              RETN

在005DD73B处看到,EDI=00508200

ctrl+g,输入00508200

在00508200处下断,shift+f9来到00508200处

00508200   /EB 06           JMP SHORT qqkav.00508208
00508202   |68 F8C80C00     PUSH 0CC8F8
00508207   |C3              RETN
00508208   \9C              PUSHFD
00508209    60              PUSHAD
0050820A    E8 02000000     CALL qqkav.00508211
0050820F    33C0            XOR EAX,EAX
00508211    8BC4            MOV EAX,ESP
00508213    83C0 04         ADD EAX,4
00508216    93              XCHG EAX,EBX
00508217    8BE3            MOV ESP,EBX
00508219    8B5B FC         MOV EBX,DWORD PTR DS:[EBX-4]
0050821C    81EB 3F904000   SUB EBX,qqkav.0040903F
00508222    87DD            XCHG EBP,EBX
00508224    8B85 E6904000   MOV EAX,DWORD PTR SS:[EBP+4090E6]
0050822A    0185 33904000   ADD DWORD PTR SS:[EBP+409033],EAX

看到下面这里的信息,呵呵,典型的入口,再进行脱壳

00508208   \9C              PUSHFD
00508209    60              PUSHAD

我这里是采用手动跟到OEP的,但经过测试,用ESP定律下断,很快就找到了OEP

这里就不多说ESP定律了,不知道的可以去看看,看雪的入门文章,好,来到这里

005D9546    85C0            TEST EAX,EAX
005D9548  ^ 0F85 9DFDFFFF   JNZ qqkav.005D92EB
005D954E    61              POPAD
005D954F    9D              POPFD
005D9550    50              PUSH EAX
005D9551    68 F8C84C00     PUSH qqkav.004CC8F8
005D9556    C2 0400         RETN 4
005D9559    8BB5 5B974000   MOV ESI,DWORD PTR SS:[EBP+40975B]

F8往下走来到OEP处

004CC8F8    55              PUSH EBP
004CC8F9    8BEC            MOV EBP,ESP
004CC8FB    83C4 F0         ADD ESP,-10
004CC8FE    B8 98C54C00     MOV EAX,qqkav.004CC598
004CC903    E8 DCA4F3FF     CALL qqkav.00406DE4
004CC908    A1 C8EB4C00     MOV EAX,DWORD PTR DS:[4CEBC8]
004CC90D    8B00            MOV EAX,DWORD PTR DS:[EAX]
004CC90F    E8 085EF9FF     CALL qqkav.0046271C
004CC914    A1 C8EB4C00     MOV EAX,DWORD PTR DS:[4CEBC8]
004CC919    8B00            MOV EAX,DWORD PTR DS:[EAX]
004CC91B    33D2            XOR EDX,EDX
004CC91D    E8 065AF9FF     CALL qqkav.00462328
004CC922    8B0D 9CE84C00   MOV ECX,DWORD PTR DS:[4CE89C]            ; qqkav.004CFE34
004CC928    A1 C8EB4C00     MOV EAX,DWORD PTR DS:[4CEBC8]
004CC92D    8B00            MOV EAX,DWORD PTR DS:[EAX]

OK直接脱壳,IAT修复下,程序运行起来了.算法篇且听下回分解,有兴趣的朋友可以自己研究下,这里提示下:软件采用TEA+RSA算法。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
2
脱壳还可以 希望算法文章快点出

2006-8-20 20:05
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
支挂一下,脱的好,呵呵,等待算法篇快点出来~!~!
2006-8-20 20:07
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
4
对了,问一下算法篇应该不是发表在这个区吧!!!
2006-8-20 20:09
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
高手们快帮我解决下我的壳问题 急死了
2006-8-20 20:10
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
6
这里给出脱壳后的文件:
上传的附件:
2006-8-20 20:52
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
yC怎么着还只是yC
不过无可否认的是:yC影响了一代壳
2006-8-20 21:50
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
8
最初由 fly 发布
yC怎么着还只是yC
不过无可否认的是:yC影响了一代壳

老大能讲具体点吗?谢谢!!!
2006-8-20 21:59
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
yC公布源代码很早,整个代码的结构也很清晰,那段时间出来的很多壳都带有yC的影子。
2006-8-20 22:10
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
10
谢谢楼上点拨!!!果然是前辈就不一样。
2006-8-20 22:22
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
11
我的问题怎么没人回答 倒
2006-8-20 22:26
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
12
论坛搜索一下,你会发现其实并不需要这么麻烦!

2006-8-20 22:26
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
13
我看了3个文章

每个文章都是我要问的问题

那里都没这样详细 所以请 书生解答下?
2006-8-20 22:29
0
游客
登录 | 注册 方可回帖
返回
//