oicq build 0425 的不完全破解
申明:本文单纯从程序角度谈了oicq build 0425 的破解问题。欢
迎阅读、指教。但本人对由使用本文进行的一切活动不负任
何责任。
如果你可以得到某人的oicq谈话记录文件,而又对他与其好友的谈话记录感兴趣,你会如何呢?用oicq谈话阅读器?可惜它不支持0220以后的版本;再说其作者也会叫你用“穷举法”来得到密码,如果设置的密码在9位以上,用“穷举法”的时间以日、月计,你就别想了。
其实我们可以毫不费力的进入观看。
首先将谈话文件夹(如7145021)放入oicq安装目录下,再在oicq\dat目录下用ultraedit打开oicq2000.cfg,在
00000009h处记录了所使用帐号的个数,后面即为帐号,只要按照“ 07 00 00 00 帐号的ascii码”形式(如 07 00 00 00 31
31 32 35 34 31 34) 加入即可。若帐号小于7位,还需用 20 补足位数(如 07 00 00 00 31 31 32 35 34 31
20)。
这样你运行oicq build 0425 后,要看的帐号就出现了,选它,随便填个密码。用trw bpx hmemcpy设断后,按下“登录”,程序为trw阻断。
bd 中断断点
f12 按44下,改
f10 走,
直到
:004370E7 E808A6FFFF call 004316F4
:004370EC 3BC3
cmp eax, ebx <-- ebx恒为0,
eax可为0或1
:004370EE 0F858F010000 jne 00437283
<-- 不跳就失败
:004370F4 A130D34E00 mov eax,
dword ptr [004ED330]
:004370F9 8945E4
mov dword ptr [ebp-1C], eax
:004370FC 8D45E4
lea eax, dword ptr [ebp-1C]
* Possible Reference to String Resource ID=33357: "揺?
!焮U勂
"
|
:004370FF 684D820000 push 0000824D
:00437104 50
push eax
:00437105 C645FC04 mov
[ebp-04], 04
:00437109 E8B707FFFF call 004278C5
:0043710E 59
pop ecx
:0043710F 59
pop ecx
:00437110 53
push ebx
:00437111 6804010000 push 00000104
:00437116 FF75E4
push [ebp-1C]
:00437119 E830650500 call 0048D64E
<--密码错误画面
所以将 004370EE 0F858F010000
jne 00437283
改为 004370EE 0F848F010000
je 00437283
后,你就可以进入这一帐号了。
如果还被设置了本地密码,你就先只能随便填个密码喽。用bpx hmemxpy设断后,f12要按56下,直到你来到
:00432E5D 8D4DF0
lea ecx, dword ptr [ebp-10]
:00432E60 7525
jne 00432E87 <-- 不跳就失败,所以要让它跳
:00432E62 E864350500 call 004863CB
:00432E67 E954FFFFFF jmp 00432DC0
这样你就可以进入他的帐号,看看它的聊天记录,他的好友名单......
所以我要说,腾讯公司是个不负责任的公司。它应该将输入的密码换算后,作为密钥来解开被加密的谈话记录,而不是仅将其作直接比较。
关于密码的破解,实在让我感到烦琐,所以就没有去深追。有兴趣的朋友可以参考如下:
1、:0046E987 F3 repz
:0046E988 A7 cmpsd <--edi放置了经变换后的输入密码,esi放置了加密后正确密码值。共比较16位,两者相等表示密码正确。
:0046E989 7427 je 0046E9B2
2、整个密码的最重要的变形、换算在
:00442B40 030E add ecx, dword ptr [esi]
.....
:0044343B C3 ret <--很有规律,但也太烦
3、由此得到的数字又经
:004434D5 E821F6FFFF call 00442AFB
<--f8进入,即为第3步
:004434DA 8B44241C mov
eax, dword ptr [esp+1C]
:004434DE 8B0E
mov ecx, dword ptr [esi]
:004434E0 83C40C
add esp, 0000000C
:004434E3 8BD1
mov edx, ecx
......
:00443556 C3
ret
变换,得到第2步中的edi值。
- 标 题:oicq build 0425 的不完全破解 (3千字)
- 作 者:小楼
- 时 间:2000-5-28 20:25:49
- 链 接:http://bbs.pediy.com