首页
社区
课程
招聘
Elicense System V4.0脱壳――zMUD V7.05
发表于: 2005-4-3 17:28 12008

Elicense System V4.0脱壳――zMUD V7.05

fly 活跃值
85
2005-4-3 17:28
12008

Elicense System V4.0脱壳――zMUD V7.05
            
           
            
下载页面:  http://forums.zuggsoft.com/index.php?page=4&action=viewall
软件大小:  6.87M  
更新日期:  2004年11月17日
软件简介:  最好的流行MUD客户端软件.是IRC,MUD网虫们喜欢的东西,让你在Internet上连接并玩那些令人着迷的MUD游戏,同时提供你很多有用的功能,是MUD玩家不能缺少的装备。  
            
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC
            
―――――――――――――――――――――――――――――――――
【脱壳过程】:
         
         
MUD明日黄花,已经没多少人玩了。
ViaTech's eLicense System offers an integrated set of advanced e-business technologies that enables content owners (software, ebook, music, video) to securely distribute and sell products on the Internet.
Elicense System看样子是个比较老的保护软件了。最大的特点是EP=OEP,国内的比泰软件防盗版战士也是这样。Elicense System流传不广,少有人知,脱壳一篇,留作记录。
―――――――――――――――――――――――――――――――――            
设置Ollydbg首先暂停在“系统断点”,用IsDebug插件去掉Ollydbg的调试器标志。

7C921231    C3              retn
//进入Ollydbg后暂停在系统断点

Alt+B打开断点查看窗口:
007A3428   Zmud       只一次      or eax,A3895A27
//删除EP处Ollydbg默认设置的断点。壳会对主EXE解码,有CC会导致解码错误。

F9运行,弹出“Powered by Elicense System”的试用对话框。
下断:BP GetModuleHandleA  
点“Free Trial”,中断后取消断点Alt+F9返回

02536BD7    83BD 14FDFFFF 0>cmp dword ptr ss:[ebp-2EC],0
02536BDE    75 05           jnz short s38o.02536BE5
02536BE0    E9 A0020000     jmp s38o.02536E85
//02536E85是处理完毕则跳转的地址
02536BE5    8B95 14FDFFFF   mov edx,dword ptr ss:[ebp-2EC]
02536BEB    52              push edx
02536BEC    8B85 F0FCFFFF   mov eax,dword ptr ss:[ebp-310]
02536BF2    FF90 741F0000   call dword ptr ds:[eax+1F74]
//GetModuleHandleA
02536BF8    8985 18FDFFFF   mov dword ptr ss:[ebp-2E8],eax; oleaut32.#355
//返回这里

02536DF1    FF90 6C1F0000   call dword ptr ds:[eax+1F6C]
//kernel32.GetProcAddress

02536E49    8985 28FDFFFF   mov dword ptr ss:[ebp-2D8],eax
02536E4F    8B8D 10FDFFFF   mov ecx,dword ptr ss:[ebp-2F0]
02536E55    8B95 08FDFFFF   mov edx,dword ptr ss:[ebp-2F8]
02536E5B    8911            mov dword ptr ds:[ecx],edx ; oleaut32.SafeArrayPutElement
02536E5D    8B85 10FDFFFF   mov eax,dword ptr ss:[ebp-2F0]
02536E63    83C0 04         add eax,4
02536E66    8985 10FDFFFF   mov dword ptr ss:[ebp-2F0],eax
02536E6C    E9 25FEFFFF     jmp s3qg.02536C96
02536E71    8B8D 28FDFFFF   mov ecx,dword ptr ss:[ebp-2D8]
02536E77    83C1 04         add ecx,4
02536E7A    898D 9CFDFFFF   mov dword ptr ss:[ebp-264],ecx
02536E80    E9 EDFCFFFF     jmp s3qg.02536B72
//循环
02536E85    8B95 E4FEFFFF   mov edx,dword ptr ss:[ebp-11C]
//转存中可以看到处理的IAT地址范围
02536E8B    52              push edx
02536E8C    E8 149B0600     call s3qg.025A09A5
02536E91    83C4 04         add esp,4
02536E94    C785 BCFDFFFF 0>mov dword ptr ss:[ebp-244],0
02536E9E    EB 0F           jmp short s3qg.02536EAF

第一个循环处理的是不加密的DLL函数,所以直接F4至02536E85
继续BP GetProcAddress   F9运行中断后取消断点Alt+F9返回

02537A9C    FF92 6C1F0000   call dword ptr ds:[edx+1F6C]
02537AA2    8985 4CFDFFFF   mov dword ptr ss:[ebp-2B4],eax; COMCTL32.ImageList_SetIconSize
//返回这里
02537AA8    8B85 40FDFFFF   mov eax,dword ptr ss:[ebp-2C0]

这个循环是处理一些加密DLL函数的,如COMCTL32.dll、kernel32.dll等
跟踪下去就能发现简单加密的地方,处理如下:

02537C21    8B95 4CFDFFFF   mov edx,dword ptr ss:[ebp-2B4]; COMCTL32.ImageList_SetIconSize
02537C27    3311            xor edx,dword ptr ds:[ecx]
//NOP掉
02537C29    8B85 30FDFFFF   mov eax,dword ptr ss:[ebp-2D0]
//修改为:mov eax,dword ptr ss:[ebp-2AC]     [ebp-2AC]保存的是IAT地址
02537C2F    8910            mov dword ptr ds:[eax],edx    ; COMCTL32.ImageList_SetIconSize
//这样正确的函数地址就直接填充进IAT
02537CCD    8B8D 54FDFFFF   mov ecx,dword ptr ss:[ebp-2AC]; Zmud.007C7B08
02537CD3    8901            mov dword ptr ds:[ecx],eax
//NOP掉加密地址填充
02537CD5    8B95 54FDFFFF   mov edx,dword ptr ss:[ebp-2AC]
02537CDB    83C2 04         add edx,4
02537CDE    8995 54FDFFFF   mov dword ptr ss:[ebp-2AC],edx
02537CE4    E9 59FCFFFF     jmp s74.02537942
02537CE9    8B85 7CFDFFFF   mov eax,dword ptr ss:[ebp-284]
02537CEF    83C0 04         add eax,4
02537CF2    8985 98FDFFFF   mov dword ptr ss:[ebp-268],eax
02537CF8    E9 DEFAFFFF     jmp s74.025377DB
//循环
02537CFD    8B8D E4FEFFFF   mov ecx,dword ptr ss:[ebp-11C]
//F4到这里
02537D03    51              push ecx
02537D04    E8 9C8C0600     call s74.025A09A5
02537D09    83C4 04         add esp,4
02537D0C    C785 BCFDFFFF 0>mov dword ptr ss:[ebp-244],0
02537D16    EB 0F           jmp short s74.02537D27

OK,输入表处理完毕,下面开始去OEP了,可以直接G 007A3428 (EP=OEP)
也可以下断:BP DeleteFileA   中断后取消断点Alt+F9返回02483C8A处

02483C84    FF15 60904902   call dword ptr ds:[2499060] ; kernel32.DeleteFileA
02483C8A    E8 51360100     call elicen40.024972E0  ; jmp to WS2_32.WSACleanup
02483C8F    8985 08E4FFFF   mov dword ptr ss:[ebp-1BF8],eax
02483C95    83BD B0F3FFFF 0>cmp dword ptr ss:[ebp-C50],0
02483C9C    75 05           jnz short elicen40.02483CA3
02483C9E    E9 25010000     jmp elicen40.02483DC8
02483CA3    833D 4CF84902 0>cmp dword ptr ds:[249F84C],1
02483CAA    75 1D           jnz short elicen40.02483CC9
02483CAC    A1 3CF84902     mov eax,dword ptr ds:[249F83C]
02483CB1    50              push eax
02483CB2    A1 28F84902     mov eax,dword ptr ds:[249F828]
02483CB7    50              push eax
02483CB8    A1 74F84902     mov eax,dword ptr ds:[249F874]
02483CBD    50              push eax
02483CBE    A1 7CF84902     mov eax,dword ptr ds:[249F87C]
02483CC3    FFD0            call eax
02483CC5    85C0            test eax,eax
02483CC7    74 0C           je short elicen40.02483CD5
02483CC9    5E              pop esi
02483CCA    5D              pop ebp
02483CCB    5B              pop ebx
02483CCC    8BE5            mov esp,ebp
02483CCE    5D              pop ebp
02483CCF    FF25 5CF84902   jmp dword ptr ds:[249F85C]; Zmud.<ModuleEntryPoint>
//飞向光明之巅! ^O^

007A3428    55              push ebp
//用LordPE纠正ImageSize后完全Dump这个进程
007A3429    8BEC            mov ebp,esp
007A342B    83C4 F4         add esp,-0C
007A342E    B8 90237A00     mov eax,Zmud.007A2390
007A3433    E8 504FC6FF     call Zmud.00408388
007A3438    A1 54597B00     mov eax,dword ptr ds:[7B5954]
007A343D    8B00            mov eax,dword ptr ds:[eax]
007A343F    E8 C82ECAFF     call Zmud.0044630C

运行ImportREC,选择这个进程。把OEP改为003A3428,IT AutoSearch,Get Import
所有的函数都是有效的。FixDump,脱壳完成!

            
―――――――――――――――――――――――――――――――――   
                                
         ,     _/
        /| _.-~/            \_     ,        青春都一晌
       ( /~   /              \~-._ |\
       `\\  _/                \   ~\ )          忍把浮名
   _-~~~-.)  )__/;;,.          \_  //'
  /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        换了破解轻狂
`~ _( ,_..--\ (     ,;'' /    ~--   /._`\
  /~~//'   /' `~\         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`\    `\\~~\   
                         "     "   "~'  ""
   
              UnPacked By :  fly
               2005-04-02 00:00


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (16)
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
2

沙发一第个坐,在看贴
2005-4-3 17:32
0
雪    币: 98761
活跃值: (201039)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
看不了,也要支持。
2005-4-3 17:34
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
虚心学习,认真领会。
2005-4-3 17:37
0
雪    币: 234
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MUD明日黄花,已经没多少人玩了。
主要是上手比较困难,实际上比传奇之流要耐玩得多。

偶当年一直用zMud4.6。
2005-4-3 17:41
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
支持
2005-4-3 18:58
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
7
明日黄花,fly兄文学功底不错。俺以前就一直用错这个词。
2005-4-3 23:32
0
雪    币: 421
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持 顶一下
2005-4-4 09:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我试着重复了作者的破解过程,文中所述的破解过程大部分在我的电脑中已经成功重复了,但最终没能成功,有几个问题不是很清楚:
1. 怎样操作才能“用IsDebug插件去掉Ollydbg的调试器标志”。
2. “007A3428   Zmud       只一次      or eax,A3895A27
”中,前面的在oD中出现了,后面的“or eax,A3895A27”是什么意思?“删除EP处Ollydbg默认设置的断点”是不是就是删除此断点?
3. 我用的是winxp_sp2英文版,对应的不是“7C921231    C3              retn”,而是“7C901231    C3              retn”,这是为什么?
4.怎样才能“用LordPE纠正ImageSize”?
先表示谢谢!
2005-4-4 15:13
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
10
1、请注意你的调试环境,设置好Ollydbg
2、Ollydbg->插件->IsDebuggerPresent->Hide
   也可以Option->Auto Hide
3、只要删除Ollydbg在EP处默认设置的断点即可
4、不同系统平台的系统函数地址是不同的
5、运行LordPE,选择目标进程,点右键就有这个选项

BTW:建议先看《加密与解密》,熟悉一些工具的使用,掌握基本知识
2005-4-4 16:04
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
11
最初由 flysky 发布
我试着重复了作者的破解过程,文中所述的破解过程大部分在我的电脑中已经成功重复了,但最终没能成功,有几个问题不是很清楚:
2. “007A3428 Zmud 只一次 or eax,A3895A27
”中,前面的在oD中出现了,后面的“or eax,A3895A27”是什么意思?“删除EP处Ollydbg默认设置的断点”是不是就是删除此断点?
3. 我用的是winxp_sp2英文版,对应的不是“7C921231 C3 retn

看得出你是初学脱壳,此等强壳不适合新手学习.
2.对,就是删除此断点
3.不同的系统,地址有所不同,但请理解原理,或者仔细核对汇编代码.

fly真乃一代脱神,偶勉强学习并脱壳完成,还没有吃透,继续学习中....
2005-4-4 16:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 fly 发布

1、请注意你的调试环境,设置好Ollydbg
2、Ollydbg->插件->IsDebuggerPresent->Hide
也可以Option->Auto Hide
3、只要删除Ollydbg在EP处默认设置的断点即可
........


谢谢!LORDPE主界面里有上下两个窗口,我选了上面窗口中的一个进程后,又从下面的窗口中查看的,所以看不到,现在我明白了。多谢!
2005-4-5 13:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最初由 springkang[DFCG 发布

看得出你是初学脱壳,此等强壳不适合新手学习.
2.对,就是删除此断点
3.不同的系统,地址有所不同,但请理解原理,或者仔细核对汇编代码.

........


谢谢!虽然比较难,但感觉还是挺有收获的。我已经买了《加密与解密》二版,看了一些静态、动态反汇编的,加壳、脱壳的确是最近才接触,作者的破解水平的确很高!
2005-4-5 13:56
0
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
BP GetModuleHandleA  显示不能下断,为何?
2005-8-23 16:36
0
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我设置断点BP GetModuleHandleA,OD提示“无法设置断点”,为何?搜索了一下模块名称,发现GetModuleHandleA的type为导出,无法设置断点。
2005-8-23 16:59
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
16
老猛壳就像老女人是明日黄花啊

____以前说某个壳
2005-8-23 17:03
0
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谁能给我一份脱壳的zmud705?谢谢!
2005-8-23 19:58
0
游客
登录 | 注册 方可回帖
返回
//