内容:
管家婆7.2A辉煌单机版破解技巧
管家婆7.2A单机版无狗进入时会有提示,说找不到加密狗,通过调试可以找到关键的跳转,跳过后
点击基本录入时会提示系统出错,“XXXXX地址的值FFFFFFF”,而XXXXX地址是在主文件里,不在
内核里。看来这里程序里故意设计的陷井,无狗时会把XXXXX地址里写入0或者FFFFFFFF,那么现在
急需要做的就是找到正确的地址,让它能够正常运行,先看下面的代码分析。
=====PART A==================================
017F:006254DA MOV [EDX],EAX
017F:006254DC
MOV EAX,[00639820]
017F:006254E1 MOV
DWORD [EAX],12
017F:006254E7 CALL 00628CBB //这里会到B部分,它会向[EAX]里写入一值。
017F:006254EC MOV EBX,EAX
017F:006254EE
MOV EAX,[0064BF84]
017F:006254F3 MOV
EDX,[EAX]
017F:006254F5 CALL NEAR [EDX+CC] //这里提示确定日期,注意从这里会到D部分。
017F:006254FB MOV EDX,ESI
017F:006254FD
MOV EAX,[0064BF84]
017F:00625502 MOV
EAX,[EAX+02CC]
017F:00625508 CALL 004A75EC
017F:0062550D TEST EBX,EBX
017F:0062550F JNZ
0062551E
017F:00625511 MOV EAX,[00639854]
017F:00625516 CMP DWORD [EAX],ED1037FF //[EAX]里的值很关键
017F:0062551C JZ 00625545 //跳到625545就不会出现找不到加密狗的提示了。
=====PART B==================================
017F:00627FDC
MOV EAX,[EBP+FFFFFE3C] //EAX为一个值,这里随机从狗里读出的。
017F:00627FE2
XOR EAX,[EBP+FFFFFF10] //EAX与[EBP+FFFFFF10]异或。
017F:00627FE8
MOV [0063AF60],EAX //得出的EAX写入[63AF60]也就是A部分的[EAX]
017F:00627FED
JMP SHORT 00628014
017F:00627FEF JMP
SHORT 00627FF2
017F:00627FF1 ADD DWORD [ECX+FFFE38BD],003000FF
017F:00627FFB ADD [ESI+EDX-7F],DH
=====PART
C=================================
017F:00633D23 MOV
DWORD [ECX],01
017F:00633D29 ADD DWORD [EBP-08],BYTE
+04
017F:00633D2D ADD EDX,BYTE +04
017F:00633D30
DEC EAX
017F:00633D31 JNZ 00633D1A
017F:00633D33 MOV [0064C08C],EDI
017F:00633D39
MOV EDI,01
017F:00633D3E MOV
EAX,[006396C8]
017F:00633D43 MOV EAX,[EAX] //运行过这一段后EAX=0,不太正常,然后在下面的CALL
017F:00633D45 SHL EAX,02 //里会出错。看来这里是关键,未运行上段前EAX=46C020
017F:00633D48 CALL 004526FC
017F:00633D4D MOV
[0064C034],EAX
017F:00633D52 MOV
EAX,[ESI]
017F:00633D54 CALL 00634370
017F:00633D59
DEC EDI
017F:00633D5A JNZ NEAR
00633E06
017F:00633D60 LEA EAX,[EBP-0C]
46C020里的值是关键,接下来要做的是看看程序在哪里向46C020写入0的,下BPM 46C020 W
重新运行软件,在点击确认日期时会被拦住。
=====PART D================================
017F:00625736 MOV EAX,ECX //此处的EAX=0
017F:00625738
MOV EBX,2711 //EBX=2711
017F:0062573D CDQ
017F:0062573E IDIV EBX
017F:00625740
IMUL EAX,EDX,2710
017F:00625746 SUB
ECX,EAX
017F:00625748 MOV EAX,ECX
017F:0062574A
ADD EAX,EAX
017F:0062574C LEA
EAX,[EAX+EAX*4] //运行过这一段后EAX=0
017F:0062574F MOV
EDX,[006396C8] //EDX=46C020
017F:00625755 MOV [EDX],EAX
//EAX写入46C020,所以是0,那正确的是什么值呢?
017F:00625757 MOVSX ECX,WORD
[EBP-04] //前面的EBX=2711,而下面也有把EBX赋成2711的
017F:0062575B MOV
EAX,ECX //代码,看来这部分代码分别向关键地址里写入
017F:0062575D MOV
EBX,2711 //异常数据,根据推断应该写入2711,试着强行写
017F:00625762
CDQ //入后程序运行正常。
017F:00625763 IDIV
EBX
017F:00625765 IMUL EAX,EDX,2710
017F:0062576B
SUB ECX,EAX
017F:0062576D MOV
EAX,ECX
017F:0062576F ADD EAX,EAX
017F:00625771
LEA EAX,[EAX+EAX*4]
017F:00625774 MOV
EDX,[006397E0]
017F:0062577A MOV [EDX],EAX
017F:0062577C MOV BYTE [ESI],01
从这个软件的破解技巧上来分析,它仍然用的是人为制造非常操作的方法,未找到狗后并不是简单
的不给你使用,而是写入一个异常数据,导致后面的程序出错。即然有写入异常数据的地方,我想
就一定有一个正常的数据,具体哪个是正常的数据,不仅要有很好的分析能力,还要有好运气,通
常这个数据都不会太难,和异常数据在一起,经过一个换算后把正常的数据变成不正常的。就是这
么简单,关键看你怎么分析了。
罗降神
2002.12.4
- 标 题:管家婆7.2A辉煌单机版破解技巧 (4千字)
- 作 者:罗降神
- 时 间:2002-12-4 22:40:11
- 链 接:http://bbs.pediy.com