|
|
对于QQ这个无比熟悉的软件你掌握了多少技巧呢?也许不少,但是你可知道如何将自己加入到自己的好友名单中吗?你可能会想这太简单了,点击“查找”,输入自己的QQ号码,然后加入就行了呗。嘿嘿,没有这么简单!如果你这样做了会出现一个对话框,显示“不能添加自己”。怎么样,不知道怎么办了吧?我有办法,而且不止一个哟^_^。% c! x; I' @! r# }- N% q8 s
方法一、利用QQ本身把自己加入好友名单" ?* a; w8 a& z+ H7 O
直接将自己加入QQ好友名单是不行的,我们绕个小小的圈子就可以骗过QQ服务器了。具体的方法如下:
" S- a( a+ R7 ?- Q E) Y1. 先将自己加入“黑名单”。在“黑名单”下点击鼠标右键,在弹出的菜单中选择“添加坏人名单”(图1),会出现如图所示画面(图2),让你“敲入坏人号码”,此时,填入自己的QQ号码就可以了。6 p2 p8 x9 @9 K6 E$ ^
2. 用鼠标左键拖动“黑名单”中自己的头像,到“我的好友”名单中(图3)。- d$ K3 n# Q1 _6 X$ u$ o
3. 如果你的QQ设置为需要验证身份才能加入到好友名单中(大多数朋友都是这样设置的),就会出现如图所示画面(图4),填入你想发送给自己的请求信息,按“发送请求”按钮。) y8 k1 r! X; ]+ d' e+ c& n% q' [
4. 此时,系统托盘中就会有你的头像闪动,点击它会看到自己给自己发来的请求信息。点击“通过验证”按钮,注意,此时不会出现通常情况下显示的通过验证成功的信息,相反,会弹出一个对话框,显示“不能添加自己”(图5)。哈,到此,我们在开篇中提到的那种情况终于出现了!怎么办?往下看就知道了,关键就在下面哦。
5 G, g8 [! C+ | h7 g5. 用鼠标右键点击系统托盘中的QQ图标,会弹出如图6所示画面,选择其中的“注册向导”,会弹出“注册向导”对话框,选择“使用已有的QQ号码”,在“我的号码”栏中填入自己的QQ号码,在“密码”栏中填入自己的QQ密码(图7),然后点击“下一步”。其实,这一步的目的就是为了让QQ重新读取服务器上的好友列表,此时的你已经在QQ服务器你的好友名单中了,只是在你的QQ上没有显示出来而已,你要做的就是把它“娶”回来,读取到本地。7 V+ m) X6 _5 ?
6. 最后,会出现“完成”对话框(图8),点击“完成”按钮即可。现在,到“我的好友”名单中看看,哈,自己已经被加入到自己的QQ好友名单中了!
9 C3 [, z( i0 R7. 试试自己和自己说话的感觉:点击“我的好友”名单中代表自己的QQ头像,传送消息过去,哈哈,真的可以呀(图9)!至此大功告成!
. \! V- X7 q' O7 j! i! u8 V方法二、利用“0+号码”添加自己5 w* L( q1 ]% Q
按照前面的方法操作,如果QQ版本为2000B Build 1220是无论如何也无法成功,看来将自己打入“黑名单”再拉为“好友”这一招已经失效了。对此,各位朋友也不用气馁,笔者还是有办法让你将自己添加为QQ好友的,从2000B Build 0530版本直至现在的2000C Build 0125都适用(早期的低版本QQ是可以添加自己为QQ好友的)。
8 l! B+ _4 c% a(特别提示:如果你采用方法一没有成功,在使用方法二时,要先把黑名单中自己的号码删除掉,否则最后添加成功后的自己的号码依然在黑名单中。)3 j3 \5 o; B0 D1 X; o; I
1. 启动你的QQ,在“QQ用户登录”对话框上点击“注册向导”按钮。选择“使用已有的QQ号码”,让隐含的“我的号码”等输入框显示出来。 o! S1 {1 n7 a' k1 j/ j# X
2. 如图10所示,直接在“我的号码”框中输入你的QQ号码(例如10000),千万不要去掉了“我的号码”框中的那个数字0,让你的QQ变成“010000”;然后输入你的QQ密码,按照提示登陆。5 _& V3 S- r, c% t* z' J
3. 登录成功后,你就会发现你的QQ号码变了,变成010000了。点击QQ面板上的“查找”按钮,在弹出的“查找添加用户”对话框上选择“自定义查找”,输入你的QQ号码10000,按照正常步骤将你的QQ添加为好友。当你点击通过认证按钮时,还是会弹出一个如图5的对话框,提示你不能添加自己为好友,不用理它,等“系统信息”框显示“服务器接受了你的认证信息,请返回”后,直接点击“返回”按钮即可。3 ]- I+ P1 |' b: s* b7 w4 _
4. 关闭你的QQ,参照第一步使用注册向导重新登陆。这一次请在“我的号码”框中去掉那个数字0,用你的QQ号码10000正常登陆。这时你会发现你已经被加入到自己的QQ好友名单中了,试试看,自己跟自己聊天吧,呵呵。
- T6 @0 n- j, g2 P- K4 r方法三、利用软件将自己加入到好友名单# T, A, m5 t, i1 `* @5 i
除了上面所说的方法外,我们还可以利用软件将自己加入到好友名单。可能这个方法较上面所说的要麻烦些,要求你懂的知识也更多些,但掌握这个方法更有DIY的感觉,更有高手的意思哦。5 q% F1 [$ {9 H& X$ x
1. 软件介绍& }) @. p* V' `1 J
下面先来介绍我们要用到的软件。我们要用到的软件叫“TRW2000”,在说到TRW2000之前,我们先来看看一个和它同类的、大家可能更熟悉一些的软件:Soft-ICE。Soft-ICE是目前公认最好的跟踪调试工具。使用Soft-ICE可以很容易地跟踪一个软件、或是监视软件产生的错误进行除错,它有DOS、WINDOW3.1、WIN95/98/NT/2000/各个平台上的版本。这个本是用来对软件进行调试、跟踪、除错的工具,在解密高手手中变成了最恐怖的破解工具;而TRW2000则是中国的“Soft-ICE”,它是中国人自己编写的调试软件,完全兼容Soft-ICE各条指令,由于现在许多软件能检测Soft-ICE的存在,而对TRW2000的检测就差了许多,因此目前它成了解密高手们的最爱。TRW2000专门针对软件破解进行了优化,在Windows下跟踪调试程序,跟踪功能更强;可以设置各种断点,并且断点种类更多;它可以象一些脱壳工具一样完成对加密外壳的去除,自动生成EXE文件,因此它的破解能力更强,而且它不用象Soft-ICE那样必须在开机时即启动运行。
& g. H- J7 r3 R TRW2000有两组热键:CTRL+N和CRTL+M,它们分别代表不同的特权级别,所谓特权级别就是程序在执行中有级别之分,只有操作系统工作在最高级--0级中,其它的程序都应工作在3级中,在3级中的程序不可直接访问IO端口,也无法访问其它程序运行的内存,连向程序自已的代码段写入数据都是非法的(会出现你熟悉的蓝屏),只有对工作在0级上的程序来说系统才是全开放的。所以TRW2000为我们准备了两种不同特权级别的热键:按CTRL+N为3级,按CTRL+M为0级。可以在不同的情况下使用,像我们今天跟的这个程序来说使用3级就可以了,所以我们按CTRL+N。3 _- D7 S: S, I0 Y5 d/ P# D
TRW2000的主界面由五部分组成,窗口中最上面的是存贮/寄存器窗,用来显示各存贮/寄存器的当前值;在存贮/寄存器窗下面的一个窗口是数据窗口,是用来显示存贮器的内容的;在数据窗口的左面也就是由“:”分开的两个值对应为:段地址:偏移地址,屏幕中间为“段地址:偏移地址”所存贮的16进制值,在右面是那些16进制值所对应的ASCII码;数据窗下面是代码窗,也就是程序啦,高亮显示的那一行是机器将要(注意:是将要)处理的下一条指令;在代码窗右上角的是堆栈窗,所谓堆栈就是一段以先进后出为工作方式的存贮器(内存),它显示的是堆栈的偏移地址和内容;在代码窗的下面是指令窗,在这里你可以对TRW2000下达你的指令,我们用来下断点的命令就是在此输入的(图11)。 ; ]4 _+ T6 s: G9 p4 Q/ l
TRW2000所有窗口的默认颜色是黑底蓝字,在白天不易看清,所以你可以下指令VER BLUE来改变它的颜色,如果你想让它每次启动时都改变,你可以打开TRW2000安装目录下的TRW2000.INI文件,把INIT="lines 35;wr 3;wd 8;wc 16;code on;"改成INIT="lines 35;wr 3;wd 8;wc 16;code on;ver blue",也就是把VER BLUE加在里面。
$ _( c8 A) D7 M- B! D R% `+ { 我们知道不能将自己加入到好友名单的主要原因是那个可恶的“不能添加自己”对话框,如果能跳过这个对话框就可以把自己加入到好友名单了。而要跳过那个对话框就要用到TRW2000,因为对TRW2000来说这是小菜一碟的事(具体的方法下面会讲)。这就是我们用TRW2000的目的。其实,我们也可以利用Soft-ICE的,但是TRW2000更容易使用,对于初学者来说使用它更好些。+ s* v3 Y+ m8 j/ O7 P% R9 ~9 X
2. 具体方法
; \* e2 P' U1 A5 j6 P7 V, p 头几步与方法一中的前四步相同,概括说来就是先在“黑名单”中加入自己,再把自己拖入到“我的好友”,这时会弹出一个对话框“不能添加自己”。请注意问题的关键就是如何跳过这个对话框,跳过它就万事大吉了。. C* F8 N5 k+ Y4 Q
运行TRW2000,在那个对话框弹出时按下CTRL+N(这是TRW2000默认的激活热键),这样就进入到TRW2000的界面中,输入“pmodule”(不含引号)命令,解释一下:pmodule是TRW2000特有的命令,使用它可以快速回到当前程序的“领空”。这里解释一下“领空”的概念,所谓“领空”,实际上是指在某一时刻,CPU的CS:IP(EIP)所指向的某一段代码的所有者所在的区域。也即TRW2000停下来时光棒(高亮度那一行)所在的那一句代码是属于哪个程序的,属于QQ2000b.EXE的就叫QQ2000的“领空”,属于KERNEL的就叫KERNEL的“领空”,你如果想窥探QQ2000b.exe的代码,就要在QQ2000b.exe的“领空”中进行跟踪。
1 w6 O' E$ A" C4 B7 J8 D% P" G! Q 执行完pmodule命令完毕,会回到“不能添加自己”对话框,点击对话框中的“确定”按钮,会在地址0167:0051C945处中断下来,代码形式如下: ) t$ p3 t' o1 T4 i9 V
0167:0051C935 FF742410 PUSH DWORD [ESP+10]
; ^' F' x# c V0167:0051C939 50 PUSH EAX + c4 a; I' D3 X
0167:0051C93A FF742410 PUSH DWORD [ESP+10]
/ x: A( W# t! ~0 g @! M0167:0051C93E 51 PUSH ECX
5 |' B8 W0 L5 t L1 j0167:0051C93F FF152C965500 CALL `USER32!MessageBoxA` //这就是“不能添加自己”对话框9 w, d7 A, C& G# u( z/ ~
0167:0051C945 5E POP ESI //点“确定”后光标停留在这里,该行高亮度显示。
) o0 G/ b3 |1 p0167:0051C946 C20C00 RET 0C //按F10跳出子程序会来到"0167:00442B92"处 (打★处)2 O/ _. x% C: j
0167:00442B37 8B86CC020000 MOV EAX,[ESI+02CC] " h3 b# n& D* P& U |$ u: C
0167:00442B3D 83F8FF CMP EAX,BYTE -01 : @& d: G- U, t q
0167:00442B40 0F848A010000 JZ NEAR 00442CD0 - Y, ?( B2 L$ F# `9 p
0167:00442B46 3B05E8255D00 CMP EAX,[005D25E8] //比较EAX和[005D25E8]值是否相等,这是关键
' v7 c$ ^5 l4 i) M S1 |0167:00442B4C 7559 JNZ 00442BA7 //如果不等则跳转到00442BA7,不能让它跳走7 v5 P. Q! i" p3 s
0167:00442B4E A18C315B00 MOV EAX,[005B318C] 2 w! j& I& n0 d% N0 P% t: A7 l
0167:00442B53 8945E8 MOV [EBP-18],EAX
: p4 Q* I0 z+ d0167:00442B56 C745FC01000000 MOV DWORD [EBP-04],01 2 f" S% h1 j7 I% j* P/ ?, U) x
0167:00442B5D 8945E4 MOV [EBP-1C],EAX
* e: F: v$ u- W2 b6 d$ K; ~0167:00442B60 8D45E8 LEA EAX,[EBP-18]
! L8 f$ s9 j- g0167:00442B63 688C800000 PUSH DWORD 808C 9 Q$ Z* l4 a0 V8 P g0 E
0167:00442B68 50 PUSH EAX 1 V4 U% x4 S3 [
0167:00442B69 C645FC02 MOV BYTE [EBP-04],02
1 X' ^ |% F! V5 N4 |; N2 p0167:00442B6D E846CB0200 CALL 0046F6B8 % }5 c0 X% A! k- X" [5 C0 N$ a
0167:00442B72 8D45E4 LEA EAX,[EBP-1C] ! D( s$ ?& e" U3 H
0167:00442B75 6875800000 PUSH DWORD 8075
0 I u/ b1 V3 R! R0167:00442B7A 50 PUSH EAX * r$ W. Y3 ?1 k8 y$ g
0167:00442B7B E838CB0200 CALL 0046F6B8
; K, P: {. k/ b* ^6 v- ^8 t7 i0167:00442B80 83C410 ADD ESP,BYTE +10 2 ~7 S! n& L8 u) G5 _- u
0167:00442B83 8BCE MOV ECX,ESI
8 [! A- P2 ]# V& W% {0167:00442B85 6A10 PUSH BYTE +10
+ `- a8 t% M8 J0167:00442B87 FF75E4 PUSH DWORD [EBP-1C] J& |: I1 {, G; U( w2 J7 m" s
0167:00442B8A FF75E8 PUSH DWORD [EBP-18] 1 ~9 @, m7 l# M% K8 E4 O
0167:00442B8D E8859D0D00 CALL 0051C917 , X; N |0 Z# |. ?, m
0167:00442B92 8D4DE4 LEA ECX,[EBP-1C] ★★★★ ' `0 P! c4 G! L( G
从上面的代码中可以看出这两行是关键:
2 d5 I% G* Y E0167:00442B46 3B05E8255D00 CMP EAX,[005D25E8] / @* u0 l# T# Q% ~" t5 \9 B
0167:00442B4C 7559 JNZ 00442BA7
8 c$ N/ ?( D% t4 i* L; t 只要不跳转走就OK了,所以要把JNZ改为JZ。在汇编语言中,JNZ是不等于转移的意思,JZ是等于转移的意思。我们要做的就是霸王硬上弓——QQ会比较0167:00442B46处的寄存器EAX和[005D25E8]的值是否相等,如果不等就转移,等于就不转移,对我们来说,不转移就意味着成功!所以,强行将代码JNZ 00442BA7(机器码7559)改为JZ 00442BA7(机器码7459)就可以达到我们的目的,在这里JNZ 00442BA7为汇编指令,即和机器码对应的程序代码。这样的改法在共享软件破解中也经常会用到,它就是所谓的暴力法。我要吧 www.abc369.net
# s! Y2 y$ T% Y4 `# a& x 现在开始改动代码,随便找个十六进制编辑器,如UltraEdit、WinHex等都可以。用UltraEdit打开QQ2000b.exe文件,点击“搜索”菜单下的“查找”,然后在弹出的对话框中填入查找内容“3B05E8255D007559”,找到后将其改为“3B05E8255D007459”,保存退出。现在你就可以跳过那个讨厌的“不能添加自己”对话框了,我们可以轻松的将自己添加到“我的好友”名单中了。请注意如果你用MODEM上网的话,可不要调试得太长时间哦(动作要快些),否则会掉线的。另外,使用方法三时请注意,不同版本的QQ你看到的汇编代码可能与我说的不同,但方法是不会错的,按照这个做就可以了。
2 v/ c4 c1 a L" d% T9 J: }4 {4 I7 s 其实,之所以讲述了三种方法,目的是希望您能通过这个例子了解到更多的解决问题的办法,开拓自己的思路,只有这样我们才能不断进步,取得成功。 |
|