daan 发表于 2008-4-30 18:08:02

QQ三剑客内存注册机

详细介绍:
QQ三剑客是一款功能强大、使用方便、界面美观的QQ辅助类工具,具有QQ自动安全登陆、QQ游戏大厅多开、QQ聊天记录离线查看等强大功能。
QQ自动安全登陆: 安全的自动智能登陆QQ! 摆脱QQ账号和密码记忆烦恼!国际先进的强大加密算法!抵御各种盗号木马软件!让你从此摆脱QQ被盗烦恼!
QQ游戏大厅多开:无限制多开QQ游戏大厅,尽享QQ游戏乐趣。
QQ聊天记录离线查看:无需密码,即能看到本机上所有QQ号码的聊天记录。
买一样,得三样!还犹豫什么?
http://www.pcsoft.com.cn/Soft/Soft_10874.htm

硬盘是ST编号是ST3160815AS的朋友可用


-----------------------------------------------------------------------------------------------------------------------------------------
感谢会员 ID:xbb 对我的帮助。说声谢谢。自己的知识太肤浅,他的分析很明确。重新来修改了注册机。还望斑竹见谅。 个人认为机器码应该是从硬盘取的吧。
根据以前的工作经验我和XBB的硬盘是西捷ST160G串 的。由此可以推断,只要是ST160G串的朋友们都可以注册成功。望测试。
顺便给个名词解释ST3160815AS
ST:希捷
3:3.5寸硬盘
1608:160G,单位是100M,1608×100M=160800M,约等于160G (在硬盘制造尚那里他们认为1024=1000,实际1G的U盘=理论1000M实际不到1000M)
1/2:里面只有一个盘片
3/5:第N代盘,这个数字越高,说明盘越新
AS:SATA接口(串口)
个人愚见。还望大家指正批评。努力学习中………………



[ 本帖最后由 daan 于 2008-5-1 10:28 编辑 ]

magic659117852 发表于 2008-4-30 18:27:52

/:001 关注个是那软件还有那些功能么

daan 发表于 2008-4-30 18:31:08

没有啊 ~不知道还有什么功能~/:L

lyp2281231 发表于 2008-4-30 19:38:44

强大。。。。。。。
试试

lyp2281231 发表于 2008-4-30 19:46:53

/:L 我怎么好像米有用起。。。。。。

py22 发表于 2008-4-30 20:51:09

赞一个,很不错的软件。

kiss-you 发表于 2008-4-30 20:59:14

截取的注册码不可用!!!

xbb[DFCG] 发表于 2008-5-1 00:07:09

楼主给我发消息,让我帮他看看在那下断做内存注册机,跟了一下,有错误的地方请大家指正。

软件解压就能使用,有没有注册表操作没去监控,Aspack2.12加壳,工具脱之。

注册保存在QQ3Sword.ini里
模式

code=注册码


总的来说此软件还是属于明码比较,不过如何通过机器码算出注册码的我也没弄清楚。顺便说一句,楼主以后跟程序要多注意堆栈,有些软件的注册会在堆栈里出现的,比如这个软件就是这样。
在我的机子上就有这个

00111344   00AD1098ASCII "3203265C5253434B7B402534"

下面的代码粗略地注释了一下,我的汇编也正在学习中,有错误大家请指出。

00411543   .E8 A8000000   CALL unpacked.004115F0
00411548   .85C0          TEST EAX,EAX                                  ;esp-14为真码
0041154A   .74 6B         JE SHORT unpacked.004115B7                  ;跳走提示注册失败



00411543   .E8 A8000000   CALL unpacked.004115F0   跟入

0041160E|.6A 01         PUSH 1
00411610|.E8 B59F0200   CALL <JMP.&MFC42.#6334_CWnd::UpdateData>
00411615|.8D4C24 14   LEA ECX,DWORD PTR SS:
00411619|.E8 F2DE0000   CALL unpacked.0041F510
0041161E|.8D4C24 10   LEA ECX,DWORD PTR SS:
00411622|.C74424 2C 000>MOV DWORD PTR SS:,0
0041162A|.E8 719F0200   CALL <JMP.&MFC42.#540_CString::CString>
0041162F|.A1 50334500   MOV EAX,DWORD PTR DS:
00411634|.8D4C24 10   LEA ECX,DWORD PTR SS:
00411638|.50            PUSH EAX                                    ;机器码入栈
00411639|.68 540A4500   PUSH unpacked.00450A54                        ;ASCII "@%s"入栈
0041163E|.51            PUSH ECX                                    ;001113D0   73E086D4MFC42.73E086D4
0041163F|.C64424 38 01MOV BYTE PTR SS:,1                  ;esp+38置1
00411644|.E8 FBA00200   CALL <JMP.&MFC42.#2818_CString::Format>
00411649|.83C4 0C       ADD ESP,0C                                    ;EAX为合并后字符串位数,ECX为“@+机器码”
0041164C|.8D5424 1C   LEA EDX,DWORD PTR SS:               ;EDX为指向机器码地址指针
00411650|.8D4424 10   LEA EAX,DWORD PTR SS:
00411654|.6A 06         PUSH 6
00411656|.6A 00         PUSH 0
00411658|.52            PUSH EDX
00411659|.51            PUSH ECX
0041165A|.8BCC          MOV ECX,ESP
0041165C|.896424 30   MOV DWORD PTR SS:,ESP
00411660|.50            PUSH EAX                                    ;EAX为@+机器码
00411661|.E8 D09F0200   CALL <JMP.&MFC42.#535_CString::CString>
00411666|.8D4C24 30   LEA ECX,DWORD PTR SS:
0041166A|.51            PUSH ECX
0041166B|.E8 E0DE0000   CALL unpacked.0041F550                        ;F8带此Call真注册会出现在堆栈中,ESP+34
00411670|.83C4 08       ADD ESP,8                                     ;此处EAX为指向真码的指针的指针
00411673|.8BC8          MOV ECX,EAX
00411675|.C64424 38 02MOV BYTE PTR SS:,2
0041167A|.E8 ABA20200   CALL <JMP.&MFC42.#4278_CString::Mid>
0041167F|.8BF8          MOV EDI,EAX                                 ;eax=320326
00411681|.8DAE 00050000 LEA EBP,DWORD PTR DS:
00411687|.6A 06         PUSH 6
00411689|.8D5424 1C   LEA EDX,DWORD PTR SS:
0041168D|.6A 00         PUSH 0
0041168F|.52            PUSH EDX
00411690|.8BCD          MOV ECX,EBP
00411692|.C64424 38 03MOV BYTE PTR SS:,3
00411697|.E8 8EA20200   CALL <JMP.&MFC42.#4278_CString::Mid>          ;比较真、假注册的前6位
0041169C|.8B37          MOV ESI,DWORD PTR DS:
0041169E|.8B00          MOV EAX,DWORD PTR DS:
004116A0|>8A10          /MOV DL,BYTE PTR DS:                     ;eax为注册码前6位
004116A2|.8A1E          |MOV BL,BYTE PTR DS:                     ;ESI为320326
004116A4|.8ACA          |MOV CL,DL
004116A6|.83CF FF       |OR EDI,FFFFFFFF
004116A9|.3AD3          |CMP DL,BL
004116AB|.75 1E         |JNZ SHORT unpacked.004116CB
004116AD|.84C9          |TEST CL,CL
004116AF|.74 16         |JE SHORT unpacked.004116C7
004116B1|.8A50 01       |MOV DL,BYTE PTR DS:
004116B4|.8A5E 01       |MOV BL,BYTE PTR DS:
004116B7|.8ACA          |MOV CL,DL
004116B9|.3AD3          |CMP DL,BL
004116BB|.75 0E         |JNZ SHORT unpacked.004116CB
004116BD|.83C0 02       |ADD EAX,2
004116C0|.83C6 02       |ADD ESI,2
004116C3|.84C9          |TEST CL,CL
004116C5|.^ 75 D9         \JNZ SHORT unpacked.004116A0
004116C7|>33C0          XOR EAX,EAX
004116C9|.EB 04         JMP SHORT unpacked.004116CF



0041166B|.E8 E0DE0000   CALL unpacked.0041F550      跟入



0041F56C|.C74424 18 000>MOV DWORD PTR SS:,0
0041F574|.BF 84134500   MOV EDI,unpacked.00451384                     ;可能是字符表   00451384=unpacked.00451384 (ASCII "ProcessJudgerhaha1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
0041F579|.83C9 FF       OR ECX,FFFFFFFF                               ;异或
0041F57C|.33C0          XOR EAX,EAX                                 ;EAX清零
0041F57E|.C74424 24 010>MOV DWORD PTR SS:,1
0041F586|.F2:AE         REPNE SCAS BYTE PTR ES:
0041F588|.F7D1          NOT ECX
0041F58A|.51            PUSH ECX
0041F58B|.E8 9CC10100   CALL <JMP.&MFC42.#823_operator new>
0041F590|.8BE8          MOV EBP,EAX
0041F592|.BF 74134500   MOV EDI,unpacked.00451374                     ;ASCII "ProcessJudger"
0041F597|.83C9 FF       OR ECX,FFFFFFFF
0041F59A|.33C0          XOR EAX,EAX
0041F59C|.83C4 04       ADD ESP,4
0041F59F|.F2:AE         REPNE SCAS BYTE PTR ES:
0041F5A1|.F7D1          NOT ECX
0041F5A3|.2BF9          SUB EDI,ECX
0041F5A5|.8BC1          MOV EAX,ECX
0041F5A7|.8BF7          MOV ESI,EDI
0041F5A9|.8BFD          MOV EDI,EBP
0041F5AB|.C1E9 02       SHR ECX,2
0041F5AE|.F3:A5         REP MOVS DWORD PTR ES:,DWORD PTR DS:[ESI>
0041F5B0|.8BC8          MOV ECX,EAX
0041F5B2|.33C0          XOR EAX,EAX
0041F5B4|.83E1 03       AND ECX,3
0041F5B7|.F3:A4         REP MOVS BYTE PTR ES:,BYTE PTR DS:
0041F5B9|.8B4C24 30   MOV ECX,DWORD PTR SS:               ;esp+30为@+机器码
0041F5BD|.8BFD          MOV EDI,EBP                                 ;edi为ProcessJudger
0041F5BF|.8B51 F8       MOV EDX,DWORD PTR DS:
0041F5C2|.83C9 FF       OR ECX,FFFFFFFF
0041F5C5|.F2:AE         REPNE SCAS BYTE PTR ES:
0041F5C7|.F7D1          NOT ECX
0041F5C9|.8BC2          MOV EAX,EDX
0041F5CB|.49            DEC ECX
0041F5CC|.33D2          XOR EDX,EDX
0041F5CE|.F7F1          DIV ECX
0041F5D0|.8D4C24 10   LEA ECX,DWORD PTR SS:
0041F5D4|.8BDA          MOV EBX,EDX
0041F5D6|.E8 C5BF0100   CALL <JMP.&MFC42.#540_CString::CString>
0041F5DB|.8B4424 30   MOV EAX,DWORD PTR SS:
0041F5DF|.33F6          XOR ESI,ESI
0041F5E1|.C64424 24 02MOV BYTE PTR SS:,2
0041F5E6|.8B48 F8       MOV ECX,DWORD PTR DS:
0041F5E9|.85C9          TEST ECX,ECX
0041F5EB|.7E 4D         JLE SHORT unpacked.0041F63A
0041F5ED|>8A1406      /MOV DL,BYTE PTR DS:
0041F5F0|.8BFD          |MOV EDI,EBP
0041F5F2|.83C9 FF       |OR ECX,FFFFFFFF
0041F5F5|.33C0          |XOR EAX,EAX
0041F5F7|.F2:AE         |REPNE SCAS BYTE PTR ES:
0041F5F9|.F7D1          |NOT ECX                                    ;ProcessJudger位数
0041F5FB|.885424 14   |MOV BYTE PTR SS:,DL                  ;循环将字串 ProcessJudger入esp+14
0041F5FF|.49            |DEC ECX                                    ;指针指向ProcessJudger下一位
0041F600|.8D041E      |LEA EAX,DWORD PTR DS:
0041F603|.33D2          |XOR EDX,EDX
0041F605|.F7F1          |DIV ECX                                    ;除ECX
0041F607|.8B4C24 14   |MOV ECX,DWORD PTR SS:
0041F60B|.33C0          |XOR EAX,EAX
0041F60D|.81E1 FF000000 |AND ECX,0FF
0041F613|.8A042A      |MOV AL,BYTE PTR DS:               ;AL为ASCII码
0041F616|.8B5424 10   |MOV EDX,DWORD PTR SS:
0041F61A|.33C1          |XOR EAX,ECX
0041F61C|.50            |PUSH EAX
0041F61D|.52            |PUSH EDX
0041F61E|.8D4424 18   |LEA EAX,DWORD PTR SS:
0041F622|.68 6C134500   |PUSH unpacked.0045136C                     ;ASCII "%s%02X"
0041F627|.50            |PUSH EAX
0041F628|.E8 17C10100   |CALL <JMP.&MFC42.#2818_CString::Format>
0041F62D|.8B4424 40   |MOV EAX,DWORD PTR SS:
0041F631|.83C4 10       |ADD ESP,10
0041F634|.46            |INC ESI
0041F635|.3B70 F8       |CMP ESI,DWORD PTR DS:               ;是否计算完毕
0041F638|.^ 7C B3         \JL SHORT unpacked.0041F5ED                   ;跳回循环
0041F63A|>55            PUSH EBP                                    ; /ECX为真码,做内存注册机处
0041F63B|.E8 72BF0100   CALL <JMP.&MFC42.#825_operator delete>      ; \free


用PYG-keymake1.73内存注册机:
中断地址:0041F63A
中断次数:1
第一字节:55
指令长度:1
注册码栏先内存方式
寄存器:ECX




应楼主的要求下面我们来说说为什么这样设置内存的注册机的各项内容:
1、中断地址:0041F63A
这个地址没什么多说的,主要是要判断程序的算法调用,要找到程序在那句指令执行完后能在寄存器中或堆栈中找到真注册码,当然是要明码比较的,不过有的分段计算的注册码也能通过多次中断得到。这个中断地址我用了半个小时左右跟到的,所以借用Fly前辈说的话:“基础很重要!”

2、中断次数:1
这个次数就象上面我说的,如果注册码是分断计算的,则就要用到多次中断才能得到完整的注册,比如2次、3次、5次

3、第一字节:55
第一字节就是你要中断的指令的第一个字节,用来给Keymake定位用。本程序只有一个Push指令“55            PUSH EBP”,所以就是55。

4、指令长度:1
这里的指令长度指的是你所要中断的这行指令的长度2个16进制数为1个指令长度。

5、注册码栏选内存方式
这里的内存方式是指注册码不是直接存放在寄存器中的,而是在内存的某个地址中,而指向这个地址的指针存放在寄存器中,想要使用Keymake取到这样的注册就得用内存方式。如果注册码是以十进制或十六进制方式直接存放在寄存器时,就用寄存器方式即可。
如图,我中断的地方注册码没有直接存放在寄存器ECX中,而是存放的指向注册码的一个内存地址。


6、寄存器:ECX
中断地址后,注册码或指向注册码的内存地址在那个寄存器中就选那个。


注册成功,如图


注册信息保存在:



注册机我就不发了,楼主自己试试看,弄好了发上来!:loveliness:

[ 本帖最后由 xbb 于 2008-5-1 00:23 编辑 ]

冷帝 发表于 2008-5-1 00:08:50

很不错的东东。支持下

wenhaibin 发表于 2008-5-1 02:05:29

看来要好好补习功课了
页: [1] 2
查看完整版本: QQ三剑客内存注册机