解除QQ自效验

 版本:2006beta2

工具:odbg

用ODBG载入QQ,下断bp CreateFileA

按下F9,发生第一次中断,堆栈情况如下

0012ECD0    00403948   /CALL 到 CreateFileA 来自 QQ.00403946
0012ECD4    00C08C48   |FileName = "C:/Program Files/Tencent/QQ/QQ.exe"
0012ECD8    80000000   |Access = GENERIC_READ
0012ECDC    00000001   |ShareMode = FILE_SHARE_READ
0012ECE0    00000000   |pSecurity = NULL
0012ECE4    00000003   |Mode = OPEN_EXISTING
0012ECE8    00000820   |Attributes = ARCHIVE|COMPRESSED
0012ECEC    00000000   /hTemplateFile = NULL
0012ECF0    0012FDEC
0012ECF4    005442E8   QQ.005442E8

直接F9,发送第二次中断,堆栈情况如下

0012FD54    0040373E   /CALL 到 CreateFileA 来自 QQ.00403738
0012FD58    00C08C98   |FileName = "C:/Program Files/Tencent/QQ/QQInfo.dat"
0012FD5C    80000000   |Access = GENERIC_READ
0012FD60    00000001   |ShareMode = FILE_SHARE_READ
0012FD64    00000000   |pSecurity = NULL
0012FD68    00000003   |Mode = OPEN_EXISTING
0012FD6C    00000820   |Attributes = ARCHIVE|COMPRESSED
0012FD70    00000000   /hTemplateFile = NULL
0012FD74    00000000
0012FD78    005442E8   QQ.005442E8

暂停,转到C:/Program Files/Tencent/QQ/目录下,用UE打开QQInfo.dat,发现内容只有48bit,其实就是

QQ.exe的效验码,那么可以猜到第一次CreateFileA打开C:/Program Files/Tencent/QQ/QQ.exe的目的了。

基本情况应该是打开C:/Program Files/Tencent/QQ/QQ.exe计算其效验值,然后从C:/Program Files/Tencent/QQ/

QQInfo.dat读取原来的效验码,两者不等则over;

目标明确,现在没必要知道它采用的效验算法是什么,只需找到两者比较后的关键jmp修改之;

直接alt+F9(或Ctrl+F9,F8)返回,重复3次后到达

0040189E    E8 35180000     call QQ.004030D8
004018A3    85C0            test eax,eax  //这里
004018A5    75 18           jnz short QQ.004018BF
004018A7    6A FF           push -1
004018A9    57              push edi
004018AA    6A 04           push 4
004018AC    E8 FBFA0600     call <jmp.&MFC42.#1199_AfxMessageBox>

下一个jnz跳过call <jmp.&MFC42.#1199_AfxMessageBox>,它就是我要找的,其实这个call QQ.004030D8

就相当于call QQfileCheck();可以把这个call nop掉提高启动速度,关键的跳转还是要改的,jnz short QQ.004018BF 改为jmp short QQ.004018BF ,保存文件完工。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值