首页
社区
课程
招聘
[旧帖] [原创][申请邀请码]零基础详细分析脱壳一个UPX外挂壳以及能破解分析出几十上千个注册码! 0.00雪花
发表于: 2011-1-26 07:02 1818

[旧帖] [原创][申请邀请码]零基础详细分析脱壳一个UPX外挂壳以及能破解分析出几十上千个注册码! 0.00雪花

2011-1-26 07:02
1818
看了之后,对脱壳以及注册码分析是有点帮忙. :
一点帮忙也没. :
还行,技术已经超越太多,基础回顾.:
首先谢谢版主来看,谢谢大家来参考我的分析!直接犀利主题:
1,第一步,侦壳,工具使用PEID V0.94 结果看到UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 壳.
2,第二步,使用调试工具Ollydbg1.10,出现提示 选择否然后出现代码:

00457B40 >  60              PUSHAD  (压栈)
00457B41    BE 00B04300     MOV ESI,刷点卷外.0043B000
00457B46    8DBE 0060FCFF   LEA EDI,DWORD PTR DS:[ESI+FFFC6000]
00457B4C    57              PUSH EDI
00457B4D    83CD FF         OR EBP,FFFFFFFF
00457B50    EB 10           JMP SHORT 刷点卷外.00457B62 .................. 跳向457B62
00457B52    90              NOP
00457B53    90              NOP
00457B54    90              NOP
00457B55    90              NOP
00457B56    90              NOP
00457B57    90              NOP
00457B58    8A06            MOV AL,BYTE PTR DS:[ESI]
00457B5A    46              INC ESI
00457B5B    8807            MOV BYTE PTR DS:[EDI],AL
00457B5D    47              INC EDI
00457B5E    01DB            ADD EBX,EBX
00457B60    75 07           JNZ SHORT 刷点卷外.00457B69
00457B62    8B1E            MOV EBX,DWORD PTR DS:[ESI]...................来到这里
00457B64    83EE FC         SUB ESI,-4
00457B67    11DB            ADC EBX,EBX
00457B69  ^ 72 ED           JB SHORT 刷点卷外.00457B58..................向上跳 不能让它跳
00457B6B    B8 01000000     MOV EAX,1...........................在这里单击鼠标,再按键盘F4键(右击断点运行到所选的意思)有提示跳转已经实现 这里必须注意右边的00457B58和00457B69大小 小往回跳 大往下跳 关键点不能往回跳 往下跳才能脱壳正确!!!所以在他下面一行F4 断点运行到所选的意思也就是卡住不往回跳的意思!!!那么大家我们开始继续看!
 00457B70    01DB            ADD EBX,EBX
00457B72    75 07           JNZ SHORT 刷点卷外.00457B7B
00457B74    8B1E            MOV EBX,DWORD PTR DS:[ESI]
00457B76    83EE FC         SUB ESI,-4
00457B79    11DB            ADC EBX,EBX
00457B7B    11C0            ADC EAX,EAX
00457B7D    01DB            ADD EBX,EBX
00457B7F  ^ 73 EF           JNB SHORT 刷点卷外.00457B70
00457B81    75 09           JNZ SHORT 刷点卷外.00457B8C
00457B83    8B1E            MOV EBX,DWORD PTR DS:[ESI]
00457B85    83EE FC         SUB ESI,-4
00457B88    11DB            ADC EBX,EBX
00457B8A  ^ 73 E4           JNB SHORT 刷点卷外.00457B70
00457B8C    31C9            XOR ECX,ECX
00457B8E    83E8 03         SUB EAX,3
00457B91    72 0D           JB SHORT 刷点卷外.00457BA0
00457B93    C1E0 08         SHL EAX,8
00457B96    8A06            MOV AL,BYTE PTR DS:[ESI]
00457B98    46              INC ESI
00457B99    83F0 FF         XOR EAX,FFFFFFFF
00457B9C    74 74     JE SHORT 刷点卷外.00457C12..........这是一个大的跳转,按回车键到达457C12
00457B9E    89C5            MOV EBP,EAX
00457BA0    01DB            ADD EBX,EBX
.
.省略代码
.

00457C12    5E              POP ESI          ; 刷点卷外.00401000   来到这里
00457C13    8DBE 00500500   LEA EDI,DWORD PTR DS:[ESI+55000]
00457C19    8B07            MOV EAX,DWORD PTR DS:[EDI]
00457C1B    09C0            OR EAX,EAX
00457C1D    74 45      JE SHORT 刷点卷外.00457C64........这是一个大的跳转,按回车键到达457C64   
00457C1F    8B5F 04         MOV EBX,DWORD PTR DS:[EDI+4]
00457C22    8D8430 C8CB0500 LEA EAX,DWORD PTR DS:[EAX+ESI+5CBC8]
00457C29    01F3            ADD EBX,ESI
00457C2B    50              PUSH EAX
00457C2C    83C7 08         ADD EDI,8
00457C2F    FF96 04CC0500   CALL DWORD PTR DS:[ESI+5CC04]
00457C35    95              XCHG EAX,EBP
00457C36    8A07            MOV AL,BYTE PTR DS:[EDI]
00457C38    47              INC EDI
00457C39    08C0            OR AL,AL
00457C3B  ^ 74 DC           JE SHORT 刷点卷外.00457C19
00457C3D    89F9            MOV ECX,EDI
00457C3F    79 07           JNS SHORT 刷点卷外.00457C48
00457C41    0FB707          MOVZX EAX,WORD PTR DS:[EDI]
00457C44    47              INC EDI
00457C45    50              PUSH EAX
00457C46    47              INC EDI
00457C47    B9 5748F2AE     MOV ECX,AEF24857
00457C4C    55              PUSH EBP
00457C4D    FF96 08CC0500   CALL DWORD PTR DS:[ESI+5CC08]
00457C53    09C0            OR EAX,EAX
00457C55    74 07           JE SHORT 刷点卷外.00457C5E
00457C57    8903            MOV DWORD PTR DS:[EBX],EAX
00457C59    83C3 04         ADD EBX,4
00457C5C  ^ EB D8           JMP SHORT 刷点卷外.00457C36
00457C5E    FF96 0CCC0500   CALL DWORD PTR DS:[ESI+5CC0C]
00457C64    61              POPAD ..............................来到这里 upx壳的特征点!必须强调注意这里!!!
00457C65  - E9 D295FAFF    JMP 刷点卷外.0040123C...............跳向程序的oep(原始入口点)
00457C6A    0000            ADD BYTE PTR DS:[EAX],AL

00401236  - FF25 A0104000   JMP DWORD PTR DS:[4010A0]  ; MSVBVM60.ThunRTMain
0040123C    68 508A4100     PUSH 刷点卷外.00418A50     ; 这里到达程序的OEP了可以dump了也就是右键脱壳!搞定!
00401241    E8 F0FFFFFF     CALL 刷点卷外.00401236       ; JMP to MSVBVM60.ThunRTMain
00401246    0000            ADD BYTE PTR DS:[EAX],AL
00401248    0000            ADD BYTE PTR DS:[EAX],AL
0040124A    0000            ADD BYTE PTR DS:[EAX],AL
出来的程序无法使用必须修复使用importREC,我感觉这个比较好用,

1、运行加壳的软件,用importREC的获取激活的进程中选择软件,
2、在IAT所需的信息OEP种输入我们找的的OEP值是 (123C)!肯定是134C,无法解释肯定是!大家强行背一下吧!再单击自动搜索IAT  RAV 和大小立马自动找到
3、再单击获取输入表,输入表显示正确,再单击修复抓取得文件,选择我们刚用ollydbg, DUMP出来的文件。
4、再运行程序,立马可以正常运行了,再次侦壳出现是Microsoft Visual Basic 5.0 / 6.0编写的程序。
   脱壳终于完毕!!!
(小总结一下,大体步骤原理为
只能向前向下走 不能往后走 找到pushad 一直F4走到popad(如果往回跳请在跳的下一格右键断点运行到所选阻止往回跳快捷键为F4) 最后转到push OEP点 右击脱壳  关键词 pushad popad 到push就成功右键可以脱壳了)
然后开始修复软件使用importREC软件 修复抓取文件脱壳完毕) 

第二分类,OK 现在分析注册码

1,ollydbg打开脱壳软件
2,首先右边天蓝色 E 键 点下
3,再双击 msvbvm60
4, CPU 主要线程,模块里 点任意文件右击搜索—当前模块中的名称(快捷键Ctrl+N) 目的找一个函数VbastrComp!!!一个比较的函数!!!比较正确与错误注册码的函数
5,找出VbastrComp右击设置开关断点 然后点蓝色的运行程序(△向右90度)
6,运行(△向右90度)破解脱壳后的程序自动出来 随便打个账号和注册密码  然后比较得密码
7,就此注册密码出来了账号随机的 (zero) 注册码为(122101114111).最后我们来使用一下看能否注册成功 看来注册成功了.

最后谢谢大家耐心看完,我把这次分析所有用到的软件都压缩起来,希望有兴趣的朋友能下载亲自尝试一下操作,我感觉我通过这次测试我对脱壳和找出注册码有了进一步了解,希望我花了3个小时写出来的帖子,大家能花个20分钟测试下,对大家了解脱壳以及分析注册码应该有点帮助,在此希望斑竹能加精,毕竟花了时间详细分析了下脱壳的大体步骤,谢谢大家了,本人会再接再厉,钻研脱壳,希望能对看雪论坛有微薄的贡献,最后谢谢CCTV,谢谢大家,谢谢地球没有毁灭,谢谢我还有饭吃,谢谢我的女朋友(PING)对我的鞭笞,谢谢看雪论坛给我发帖的机会.

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 137
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
这是因为,你脱完之后

[QUOTE=瞬间oday;919395]00401236  - FF25 A0104000   JMP DWORD PTR DS:[4010A0]  ; MSVBVM60.ThunRTMain
0040123C    68 508A4100     PUSH 刷点卷外.00418A50     ; 这里到达程序的OEP了可以dump了也就是右键脱壳!搞定!
00401241    E8 F0FFFFFF     CALL 刷点卷外.00401236       ; JMP to MSVBVM60.ThunRTMain
[/QUOTE]
到了0040123C,再减去基址400000,就出来123C了。
呵呵,支持原创。写原创累的要死 我深有体会
2011-1-26 08:38
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
xiexie 谢谢
2011-1-26 08:49
0
雪    币: 81
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
下硬件断点,运行,单步,直接跳到OEP,搞定。
2011-1-26 09:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
保存下来,学习。多谢
LZ辛苦
2011-1-26 09:39
0
雪    币: 48
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了!收藏,顶~
2011-1-26 13:16
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
虽然我什么都不懂 正在学习阶段 楼主非常辛苦 看得出来 是个有激情的年轻人 支持你
2011-1-26 14:08
0
雪    币: 182
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
加油,多用几种方法脱壳
2011-1-26 14:23
0
游客
登录 | 注册 方可回帖
返回
//