|
|
icy小组--易语言非常规破解思路秒杀 |
| 运行环境 |
Win9X/Win2000/WinXP/Win2003/ |
|
| 整理时间 |
2007-3-22 7:25:30 |
| 软件星级 |
 |
| 软件语言 |
简体中文 |
| 软件类型 |
综合教程 |
| 授权方式 |
免费教程 |
| 软件大小 |
4.72 MB |
| 相关连接 |
hack58fb#126.com 官方主页 没有预览图片
[收 藏] |
| 下载统计 |
|
| 解压密码 |
本站默认解压密码:www.hack58.com |
|
软件简介 |
|
大家好,我是BoXer[ICY] ,今天的动画是《易语言非常规破解思路秒杀》 ============================================================================================== 1、脱壳 下载,安装,查壳,发现是:PECompact 2.x -> Jeremy Collake 熟悉 PECompact 2.x 的人都知道,这个壳的入口点就是程序的入口点,我们直接OD载入, 看到EIP那里就是入口点00401000 在输入 he eip 回车,F9运行,直接飞到OEP ,删除硬件断点,dump! 不知道是不是我OD的dump插件的问题,我用了几个OD怎么dump出来修复的都没用 只好 LoadPE 来dump ,然后 修复 ImportREC 修复 OEP输入1000,自动找RVA,修复,ok! 再查壳:E language * ============================================================================================== 2、常规方法 由于常规方法我只讲思路,就是EcE或者用bp MessageBoxA找找按钮事件,然后找到之好改跳转。 但是随便输入注册码都能提示注册成功,而软件还是没有注册。经过冥想,我找到了以下方法。 ============================================================================================== 3、非常规方法 细心的人会发现,od载入这个软件会发现提示有压缩代码,一般我们加载压缩壳都会有这样的提示。 但是这个软件我们已经脱壳了,显示E language * 我们这时候用我师兄(luocong师兄,比我高几届,我现在还没毕业)的查找字符串插件是找不到字符串的。 这就是E语言封装的结果,我们来突破易语言的封装,找真正的“ OEP”吧。 ============================================================================================== E语言的通用入口点 00401000 > E8 06000000 call 0040100B ; F7进入 00401005 50 push eax ; 这是退出代码 00401006 E8 BB010000 call <jmp.&kernel32.ExitProcess> ; 退出释放进程 。。。。。(华丽的省略号)。。。。。 004010A2 50 push eax ; 初始化,准备加载E语言支持库 004010A3 E8 44010000 call 004011EC 004010A8 68 19104000 push 00401019 ; ASCII "krnln.fnr" 004010AD 8D85 FCFEFFFF lea eax, dword ptr [ebp-104] 004010B3 50 push eax 004010B4 E8 25010000 call <jmp.&kernel32.lstrcat> ; lstrcatA函数 004010B9 50 push eax ; 文件名 004010BA E8 19010000 call <jmp.&kernel32.LoadLibraryA> ; LoadLobraryA函数 004010BF 85C0 test eax, eax ; 测试支持库加载是否成功,成功就使下一句跳转 004010C1 0F85 9E000000 jnz 00401165 ; 不成功就从注册表中找E程序的安装目录 。。。。。(又是菜鸟最喜欢的华丽的省略号)。。。。。 00401191 FFD0 call eax ; 加载E格式进行本地封装等操作,F7进去 00401193 6A 00 push 0 ; ExitCode=0 00401195 E8 2C000000 call <jmp.&kernel32.ExitProcess> ; 退出释放进程 。。。。。(还是无比华丽的省略号)。。。。。 1002998A 55 push ebp 1002998B 8BEC mov ebp, esp 1002998D 8B45 08 mov eax, dword ptr [ebp+8] 10029990 50 push eax 10029991 B9 10DB0E10 mov ecx, 100EDB10 10029996 E8 04F5FFFF call 10028E9F ; F7进去 1002999B 5D pop ebp 1002999C C2 0400 retn 4 ============================================================================================== 到了看krnln.fnr的领空了 1002998A 55 push ebp 1002998B 8BEC mov ebp, esp 1002998D 8B45 08 mov eax, dword ptr [ebp+8] 10029990 50 push eax 10029991 B9 10DB0E10 mov ecx, 100EDB10 10029996 E8 04F5FFFF call 10028E9F ; F7进去 1002999B 5D pop ebp 1002999C C2 0400 retn 4 之后就到了这里: 10028E9F 55 push ebp ; 对E语言格式进行封装 10028EA0 8BEC mov ebp, esp 10028EA2 83EC 08 sub esp, 8 10028EA5 53 push ebx 10028EA6 56 push esi 10028EA7 57 push edi 10028EA8 894D F8 mov dword ptr [ebp-8], ecx 10028EAB FF15 E0230C10 call dword ptr [<&KERNEL32.GetProc>; kernel32.GetProcessHeap 10028EB1 8B4D F8 mov ecx, dword ptr [ebp-8] 10028EB4 8981 50040000 mov dword ptr [ecx+450], eax 10028EBA 8B55 08 mov edx, dword ptr [ebp+8] 10028EBD 8B42 30 mov eax, dword ptr [edx+30] 10028EC0 83E0 01 and eax, 1 10028EC3 85C0 test eax, eax 10028EC5 75 10 jnz short 10028ED7 10028EC7 8B4D 08 mov ecx, dword ptr [ebp+8] 10028ECA 51 push ecx 10028ECB 8B4D F8 mov ecx, dword ptr [ebp-8] 10028ECE E8 4DFB0200 call 10058A20 ; 封装完成 10028ED3 FFE0 jmp eax ; 跳到程序真正的OEP ============================================================================================== 0041E5EF FC cld ;程序真正的OEP,可以搜索字符串了 0041E5F0 DBE3 finit 0041E5F2 E8 F7FFFFFF call 0041E5EE 0041E5F7 68 A1E54100 push 0041E5A1 0041E5FC B8 03000000 mov eax, 3 0041E601 E8 36000000 call 0041E63C 0041E606 83C4 04 add esp, 4 0041E609 E8 A2E1FFFF call 0041C7B0 0041E60E 68 CC000152 push 520100CC 0041E613 E8 1E000000 call 0041E636 0041E618 83C4 04 add esp, 4 0041E61B 6A 00 push 0 0041E61D E8 0E000000 call 0041E630 0041E622 E8 03000000 call 0041E62A 0041E627 83C4 04 add esp, 4 0041E62A - FF25 F9B24100 jmp dword ptr [41B2F9] ; krnln.10029892 0041E630 - FF25 FDB24100 jmp dword ptr [41B2FD] ; krnln.100297FD 0041E636 - FF25 01B34100 jmp dword ptr [41B301] ; krnln.10029827 0041E63C - FF25 05B34100 jmp dword ptr [41B305] ; krnln.10028F95 0041E642 - FF25 F5B24100 jmp dword ptr [41B2F5] ; krnln.1002995A 0041E648 - FF25 E9B24100 jmp dword ptr [41B2E9] ; krnln.100297D6 0041E64E - FF25 DDB24100 jmp dword ptr [41B2DD] ; krnln.10028FBA 0041E654 - FF25 E1B24100 jmp dword ptr [41B2E1] ; krnln.10029011 0041E65A - FF25 E5B24100 jmp dword ptr [41B2E5] ; krnln.100297B7 0041E660 - FF25 EDB24100 jmp dword ptr [41B2ED] ; krnln.10029852 0041E666 - FF25 D5B24100 jmp dword ptr [41B2D5] ; krnln.10029799 。。。。。(最后一次华丽的省略抢风头)。。。。。。。。 ============================================================================================== 经过上面无聊的分析后发现: 那么以后找E语言真正的OEP只要在脱壳后的程序“右键”-“查找”-“二进制字符串” 输入 “ FC DB E3 ” 就可以到真正的易语言OEP了。 ============================================================================================== 找到真正的OEP后就非常方便了,我们可以搜索字符串,找到关键字就可以秒杀了。 对真正的OEP按 F4 运行到所选,之后立刻“右键”-“超级字符串参考”-“查找ascii” 就会发现很多关于注册的字样,那么究竟谁才是真正的关键字眼呢? 一般都是找注册失败的提示啊,然后改跳转让它成功。 最后我找啊找,终于下面这句才是关键语句: 超级字串参考, 项目 30 地址=0041C33D 反汇编=PUSH dumped_.004032EF 文本字串=未注册版本,您只能转换10次,请您注册此软件! 双击来到这里: 0041C33D |68 EF324000 push 004032EF ; 未注册版本,您只能转换10次,请您注册此软件! 往上看看有个je跳,是这样的: 0041C330 /0F84 48000000 je 0041C37E ;这个跳,改jmp跳过就注册了 0041C336 |68 04000080 push 80000004 0041C33B |6A 00 push 0 0041C33D |68 EF324000 push 004032EF ; 未注册版本,您只能转换10次,请您注册此软件! 0041C342 |68 01030080 push 80000301 0041C347 |6A 00 push 0 0041C349 |68 02000000 push 2 0041C34E |68 02000400 push 40002 0041C353 |68 EF000116 push 160100EF 0041C358 |68 CC000152 push 520100CC 0041C35D |68 03000000 push 3 0041C362 |BB 80000000 mov ebx, 80 0041C367 |B8 03000000 mov eax, 3 0041C36C |E8 DD220000 call 0041E64E 0041C371 |83C4 28 add esp, 28 0041C374 |C705 00229A00 0>mov dword ptr [9A2200], 1 0041C37E \6A 00 push 0 最后保存,运行,发现。。。已经注册了。。。连注册码都不用输入。。。 给同学测试,成功! -------------------------------------------------------------------------------- 【经验总结】 本文重点是讨论易语言的封装问题,突破易语言的封装去寻找用易语言编写的程序的字符串进行突破。经过这样做,才有上 面的1字节秒杀效果。 icy群:18383453
|
|
|
|
下载说明 |
|
* 为了达到最快的下载速度,推荐使用[讯雷]下载本站软件。
* 请一定升级到最新版[WinRAR3.5]才能正常解压本站提供的软件! * 如果您发现该软件不能下载,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们! |
|
|
![]() |
|