首页
社区
课程
招聘
[旧帖] [原创]MSN聊天记录远程查看器v2.3破解分析 0.00雪花
发表于: 2007-8-5 16:20 6605

[旧帖] [原创]MSN聊天记录远程查看器v2.3破解分析 0.00雪花

2007-8-5 16:20
6605
【破文标题】MSN聊天记录远程查看器v2.3破解分析
【破文作者】酷子
【作者邮箱】1183204@qq.com
【作者主页】1183204@qq.com
【破解工具】peid0.94+OD
【破解平台】XPsp2
【软件名称】MSN聊天记录远程查看器v2.3
【软件大小】308k
【原版下载】http://shareware.skycn.com/soft/12751.htm
【保护方式】PECompact 1.68 - 1.84 -> Jeremy Collake [覆盖]
【软件简介】★目前唯一一款可以查看远程MSN聊天记录的软件!
    ★MSN聊天记录远程查看器可以免密码查看本地计算机及远程计算机的MSN聊天记录
    ★它由本地端及远程端共同组成,(远程端不提供下载,需要您注册后,由我们亲自发送到您的邮箱中)
    ★本地端:负责查看本地计算机上的所有MSN聊天记录
    ★远程端:负责将远程计算机上的MSN聊天记录发回到您的邮箱中(对方每次重新启动电脑或者持续运行了2-3小时左右均会发送记录)
【破解声明】初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】费话不多说,还是先查下有没有壳
peid一下PECompact 1.68 - 1.84 -> Jeremy Collake [覆盖]的壳
用esp定律可以轻松到达oep
0045BE48    55              PUSH EBP                       这里就是程序oep了
0045BE49    8BEC            MOV EBP,ESP
0045BE4B    83C4 F4         ADD ESP,-0C
0045BE4E    B8 A0BC4500     MOV EAX,msnsee.0045BCA0               
0045BE53    E8 84A0FAFF     CALL msnsee.00405EDC
0045BE58    A1 2CD84500     MOV EAX,DWORD PTR DS:[45D82C]
0045BE5D    8B00            MOV EAX,DWORD PTR DS:[EAX]

脱壳后,运行,出现提示:Incomplete Zip File,同时会生成一个xduyefda.rar的文件
说明文件有自效验,想去除自效验的,但看了下,感觉不怎么好找,于是放弃了(人懒是这样的哈)
条条道路通罗马,脱了不行,我就不脱他,试试带壳破解,看看能不能行
说做就做,od载入程序,先用esp定律到达oep
然后f9运行,程序是运行起来了,但我发现程序脱离了od运行起来的,因为我发现模块到了:模块-ntdll,并且关掉od,程序不会一同关掉。
难道又走不通,还有路可走吗?
对了,还有一个,od的附加功能
一切重来,这次先运行程序,让他先运行起来
然后打开od,点击文件—附加,找到程序的进程,也就是msnsee这个进程,点击它,再点附加
好了,附加好了,再点ctrl+f12重新运行程序,再f9运行
ok这下程序没有脱离od了,看来这样能行,有门了
好了程序运行起来了,开始正式破解了,前奏太长了点哈
点注册,填入 机器码:1183204@qq.com
             注册码:11111 22222 33333 44444
点确定看看,下面出现:错误的注册码
查找字符串,没有任何东西
试了几个断点都没有用,唉,还是用万能断点吧
好,用插件下好万能断点,点确定
嘿嘿,断下来了哈
alt+f9返回到程序领空

004090A3    FF91 A0000000   CALL DWORD PTR DS:[ECX+A0]
004090A9    3BC6            CMP EAX,ESI                   返回来到这里了
004090AB    DBE2            FCLEX
004090AD    7D 12           JGE SHORT msnsee.004090C1
004090AF    68 A0000000     PUSH 0A0
004090B4    68 9C454000     PUSH msnsee.0040459C
004090B9    53              PUSH EBX
004090BA    50              PUSH EAX

然就就要有耐性了哈,一路f8向下走,中途遇到jmp向回跳的就在下句f4运行过去
下面的代码十分十分的遥远,甚至我都开始怀疑我找错地方了,最后还是我的耐性帮助了我
一直按不知道n下f8
一直到
00409FDD    50              PUSH EAX
00409FDE    FF15 44104000   CALL DWORD PTR DS:[401044]               ; msvbvm60.__vbaHresultCheckObj
00409FE4    8B45 C8         MOV EAX,DWORD PTR SS:[EBP-38]            ; 走到这里能看到我的假码22222
00409FE7    8B4D C4         MOV ECX,DWORD PTR SS:[EBP-3C]            ; 看到11111
00409FEA    50              PUSH EAX                                 ; 寄存器个也看到假码了,耐力呀
00409FEB    51              PUSH ECX
00409FEC    FF15 40104000   CALL DWORD PTR DS:[401040]               ; msvbvm60.__vbaStrCat
00409FF2    8BD0            MOV EDX,EAX                              ; 上面一句把两串假码连接起来2222211111
00409FF4    8D4D BC         LEA ECX,DWORD PTR SS:[EBP-44]
00409FF7    FFD6            CALL ESI
00409FF9    8B55 C0         MOV EDX,DWORD PTR SS:[EBP-40]
00409FFC    50              PUSH EAX                                 ; 看到33333
00409FFD    52              PUSH EDX
00409FFE    FF15 40104000   CALL DWORD PTR DS:[401040]               ; msvbvm60.__vbaStrCat
0040A004    8BD0            MOV EDX,EAX                              ; 连接成222221111133333
0040A006    8D4D B4         LEA ECX,DWORD PTR SS:[EBP-4C]
0040A009    FFD6            CALL ESI
0040A00B    50              PUSH EAX
0040A00C    8B45 B8         MOV EAX,DWORD PTR SS:[EBP-48]
0040A00F    50              PUSH EAX                                 ; 44444
0040A010    FF15 40104000   CALL DWORD PTR DS:[401040]               ; msvbvm60.__vbaStrCat
0040A016    8D4D 80         LEA ECX,DWORD PTR SS:[EBP-80]            ; 连接成22222111113333344444
0040A019    8985 D8FEFFFF   MOV DWORD PTR SS:[EBP-128],EAX
0040A01F    6A 14           PUSH 14
0040A021    8D95 60FFFFFF   LEA EDX,DWORD PTR SS:[EBP-A0]
0040A027    51              PUSH ECX
0040A028    8D85 50FFFFFF   LEA EAX,DWORD PTR SS:[EBP-B0]
0040A02E    52              PUSH EDX
0040A02F    50              PUSH EAX
0040A030    C785 D0FEFFFF 0>MOV DWORD PTR SS:[EBP-130],8008
0040A03A    FF15 FC104000   CALL DWORD PTR DS:[4010FC]               ; msvbvm60.__vbaVarCat
0040A040    8D8D 30FFFFFF   LEA ECX,DWORD PTR SS:[EBP-D0]              这里开始又是一些连接
0040A046    50              PUSH EAX                         我想可能是真码做的一些连接吧(个人猜想)
0040A047    8D95 20FFFFFF   LEA EDX,DWORD PTR SS:[EBP-E0]
0040A04D    51              PUSH ECX
0040A04E    52              PUSH EDX
0040A04F    FF15 FC104000   CALL DWORD PTR DS:[4010FC]               ; msvbvm60.__vbaVarCat
0040A055    50              PUSH EAX
0040A056    8D85 00FFFFFF   LEA EAX,DWORD PTR SS:[EBP-100]
0040A05C    8D8D F0FEFFFF   LEA ECX,DWORD PTR SS:[EBP-110]
0040A062    50              PUSH EAX
0040A063    51              PUSH ECX
0040A064    FF15 FC104000   CALL DWORD PTR DS:[4010FC]               ; msvbvm60.__vbaVarCat
0040A06A    8D95 E0FEFFFF   LEA EDX,DWORD PTR SS:[EBP-120]
0040A070    50              PUSH EAX
0040A071    52              PUSH EDX
0040A072    FF15 6C114000   CALL DWORD PTR DS:[40116C]               ; msvbvm60.rtcLeftCharVar
0040A078    8D85 D0FEFFFF   LEA EAX,DWORD PTR SS:[EBP-130]
0040A07E    8D8D E0FEFFFF   LEA ECX,DWORD PTR SS:[EBP-120]
0040A084    50              PUSH EAX
0040A085    51              PUSH ECX
0040A086    FF15 B0104000   CALL DWORD PTR DS:[4010B0]               ; msvbvm60.__vbaVarTstEq
0040A08C    8985 1CFDFFFF   MOV DWORD PTR SS:[EBP-2E4],EAX          这里有个变量的比较函数,重要的地方
0040A092    8D55 B8         LEA EDX,DWORD PTR SS:[EBP-48]
0040A095    8D45 B4         LEA EAX,DWORD PTR SS:[EBP-4C]
0040A098    52              PUSH EDX
0040A099    8D4D C0         LEA ECX,DWORD PTR SS:[EBP-40]
0040A09C    50              PUSH EAX
0040A09D    8D55 BC         LEA EDX,DWORD PTR SS:[EBP-44]
0040A0A0    51              PUSH ECX
0040A0A1    8D45 C4         LEA EAX,DWORD PTR SS:[EBP-3C]
0040A0A4    52              PUSH EDX
0040A0A5    8D4D C8         LEA ECX,DWORD PTR SS:[EBP-38]
0040A0A8    50              PUSH EAX
0040A0A9    51              PUSH ECX
0040A0AA    6A 06           PUSH 6
0040A0AC    FF15 34114000   CALL DWORD PTR DS:[401134]               ; msvbvm60.__vbaFreeStrList
0040A0B2    8D55 A0         LEA EDX,DWORD PTR SS:[EBP-60]
0040A0B5    8D45 A4         LEA EAX,DWORD PTR SS:[EBP-5C]
0040A0B8    52              PUSH EDX
0040A0B9    8D4D A8         LEA ECX,DWORD PTR SS:[EBP-58]
0040A0BC    50              PUSH EAX
0040A0BD    8D55 AC         LEA EDX,DWORD PTR SS:[EBP-54]
0040A0C0    51              PUSH ECX
0040A0C1    52              PUSH EDX
0040A0C2    6A 04           PUSH 4
0040A0C4    FF15 34104000   CALL DWORD PTR DS:[401034]               ; msvbvm60.__vbaFreeObjList
0040A0CA    8D85 E0FEFFFF   LEA EAX,DWORD PTR SS:[EBP-120]
0040A0D0    8D8D D0FEFFFF   LEA ECX,DWORD PTR SS:[EBP-130]
0040A0D6    50              PUSH EAX
0040A0D7    8D95 F0FEFFFF   LEA EDX,DWORD PTR SS:[EBP-110]
0040A0DD    51              PUSH ECX
0040A0DE    52              PUSH EDX
0040A0DF    8D85 00FFFFFF   LEA EAX,DWORD PTR SS:[EBP-100]
0040A0E5    8D8D 20FFFFFF   LEA ECX,DWORD PTR SS:[EBP-E0]
0040A0EB    50              PUSH EAX
0040A0EC    8D95 10FFFFFF   LEA EDX,DWORD PTR SS:[EBP-F0]
0040A0F2    51              PUSH ECX
0040A0F3    8D85 30FFFFFF   LEA EAX,DWORD PTR SS:[EBP-D0]
0040A0F9    52              PUSH EDX
0040A0FA    8D8D 50FFFFFF   LEA ECX,DWORD PTR SS:[EBP-B0]
0040A100    50              PUSH EAX
0040A101    8D95 40FFFFFF   LEA EDX,DWORD PTR SS:[EBP-C0]
0040A107    51              PUSH ECX
0040A108    8D85 60FFFFFF   LEA EAX,DWORD PTR SS:[EBP-A0]
0040A10E    52              PUSH EDX
0040A10F    8D4D 80         LEA ECX,DWORD PTR SS:[EBP-80]
0040A112    50              PUSH EAX
0040A113    8D95 70FFFFFF   LEA EDX,DWORD PTR SS:[EBP-90]
0040A119    51              PUSH ECX
0040A11A    8D45 90         LEA EAX,DWORD PTR SS:[EBP-70]
0040A11D    52              PUSH EDX
0040A11E    50              PUSH EAX
0040A11F    6A 0D           PUSH 0D
0040A121    FF15 2C104000   CALL DWORD PTR DS:[40102C]               ; msvbvm60.__vbaFreeVarList
0040A127    83C4 68         ADD ESP,68
0040A12A    66:83BD 1CFDFFF>CMP WORD PTR SS:[EBP-2E4],0
0040A132    0F84 E6050000   JE msnsee.0040A71E                       关键跳,关键跳哟
0040A138    8B0F            MOV ECX,DWORD PTR DS:[EDI]
0040A13A    57              PUSH EDI

走到
0040A086    FF15 B0104000   CALL DWORD PTR DS:[4010B0]               ; msvbvm60.__vbaVarTstEq
看到上面有两个push eax,  push ecx
在寄存器窗口中,指着eax数据右键—数据窗口上跟随,看到
0012F3D8  00000000
0012F3DC  0012F448
0012F3E0  001A2BD4  UNICODE "22222111113333344444"
0012F3E4  0012F438
0012F3E8  00000000
0012F3EC  00177E84
0012F3F0  001694AC  UNICODE "1046185816584803304"
0012F3F4  00177DF8
0012F3F8  00000000
0012F3FC  0012F448

程序就是把两个值传入堆栈中,供__vbaVarTstEq调用的来做比较的
下面那串数是不就是就我们找了这么久的真的注册码呀
看我们的假码22222111113333344444和我们输入的时侯是做了位置变换的,所以下面这串数字我也来和假码一样他下变换
假码11111    22222    33333   44444
真码85816    10461    58480   3304

这是我们要的注册码呢,试下不就行了
呵呵,注册成功
唉,又可能以收工了

哦,对了,注册成功后要生成c:\hiberfix.sys这个文件,这就是注册文件哈,把他删了软件就又是没注册了哟

总结下       机器码:1183204@qq.com
             注册码:85816 10461 58480 3304
             注册后生成 c:\hiberfix.sys文件

------------------------------------------------------------------------
【破解总结】这个软件难度是不大,但得要有好的耐心,没耐心的话中途就倒下了哈
人常说:熟读唐诗300首 ,不会做诗也会吟
我相信:勤做练习几百个, 不会破解也练成
------------------------------------------------------------------------
【版权声明】转载请注明出处,请注明作者并保持文章的完整, 谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持裤子大侠新作
2007-8-5 16:25
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了
2007-8-5 16:29
0
游客
登录 | 注册 方可回帖
返回
//