Nisy 发表于 2009-1-24 15:30:40

XX排课专家 V5.X 机器码固定

取CPU-ID 后8位作为机器码 Patch一下 来固定其机器码 下面来看一下具体过程

调试得 生成硬件码的函数在此:

0051B35C/$55                   PUSH EBP                                           ;CPUid
0051B35D|.8BEC               MOV EBP,ESP

局部调用来自 004F8CC1, 004F8CCD, 004F8DCE, 004F8DDA, 00519795, 005197A1

从调用上大约可以看出来 程序启动、注册验证、或者功能验证都要从此函数中获取CPUID

0051B3B9|.E8 66E1EEFF          CALL Course.00409524                               ;取第一组ID
0051B3BE|.FF75 E0            PUSH DWORD PTR SS:
0051B3C1|.68 54B45100          PUSH Course.0051B454
0051B3C6|.8D4D DC            LEA ECX,DWORD PTR SS:
0051B3C9|.BA 08000000          MOV EDX,8
0051B3CE|.8B45 F4            MOV EAX,DWORD PTR SS:
0051B3D1|.E8 4EE1EEFF          CALL Course.00409524                               ;取第二组ID
0051B3D6|.FF75 DC            PUSH DWORD PTR SS:
0051B3D9|.68 54B45100          PUSH Course.0051B454
0051B3DE|.8D4D D8            LEA ECX,DWORD PTR SS:
0051B3E1|.BA 08000000          MOV EDX,8
0051B3E6|.8B45 F8            MOV EAX,DWORD PTR SS:
0051B3E9|.E8 36E1EEFF          CALL Course.00409524                               ;取第三组ID
0051B3EE|.FF75 D8            PUSH DWORD PTR SS:
0051B3F1|.68 54B45100          PUSH Course.0051B454
0051B3F6|.8D4D D4            LEA ECX,DWORD PTR SS:
0051B3F9|.BA 08000000          MOV EDX,8
0051B3FE|.8B45 FC            MOV EAX,DWORD PTR SS:
0051B401|.E8 1EE1EEFF          CALL Course.00409524                               ;取第四组ID
0051B406|.FF75 D4            PUSH DWORD PTR SS:                         ;这里来Patch代码
0051B409|.8BC3               MOV EAX,EBX
0051B40B|.BA 07000000          MOV EDX,7
0051B410|.E8 8F9AEEFF          CALL Course.00404EA4
0051B415|.EB 0C                JMP SHORT Course.0051B423
0051B417|>8BC3               MOV EAX,EBX
0051B419|.BA 60B45100          MOV EDX,Course.0051B460                            ;ASCII "CPUID not available"
0051B41E|.E8 5D97EEFF          CALL Course.00404B80

通过跟踪 发现第四组数据是我们所需要的 也就是程序取的硬件码的数据



在这里我们Patch出来写代码:

0051B406|.FF75 D4       PUSH DWORD PTR SS:   // jmp 0052D1FC
0051B409|.8BC3          MOV EAX,EBX
0051B40B|.BA 07000000   MOV EDX,7

固定机器码代码如下:

0052D1FC    8B4D D4                MOV ECX,DWORD PTR SS:         // 指针给 ECX 寄存器
0052D1FF    36:C701 4348494E       MOV DWORD PTR SS:,4E494843       // 赋值 内存替换ID
0052D206    36:C741 04 41505947    MOV DWORD PTR SS:,47595041
0052D20E    33C9                   XOR ECX,ECX
0052D210    FF75 D4                PUSH DWORD PTR SS:
0052D213    8BC3                   MOV EAX,EBX
0052D215^ E9 F1E1FEFF            JMP Course.0051B40B

如果不脱壳的话 那就SMC一下 :-)

006655A9    C705 FCD15200 8B4DD436 MOV DWORD PTR DS:,36D44D8B
006655B3    C705 00D25200 C7014348 MOV DWORD PTR DS:,484301C7
006655BD    C705 04D25200 494E36C7 MOV DWORD PTR DS:,C7364E49
006655C7    C705 08D25200 41044150 MOV DWORD PTR DS:,50410441
006655D1    C705 0CD25200 594733C9 MOV DWORD PTR DS:,C9334759
006655DB    C705 10D25200 FF75D48B MOV DWORD PTR DS:,8BD475FF
006655E5    C705 14D25200 C3E9F1E1 MOV DWORD PTR DS:,E1F1E9C3
006655EF    66:C705 18D25200 FEFFMOV WORD PTR DS:,0FFFE
006655F8    C705 06B45100 E9F11D01 MOV DWORD PTR DS:,11DF1E9
00665602    C605 0AB45100 00       MOV BYTE PTR DS:,0
00665609^ E9 ACFDFFFF            JMP Course_.006653BA

key 保存在这里 : HKEY_LOCAL_MACHINE\SOFTWARE\TbExc

然后将注册信息在Loader中导入一下即可 :-)以上只是一个固定机器码的思路和方法 欢迎大家更多的深入讨论

练习软件下载:http://www.skycn.com/soft/48682.html

cfc1680 发表于 2012-4-1 20:16:39

不错哦,学习一下了

zckey09 发表于 2011-6-28 22:47:50

谢谢分享 学习了

DaShanRen 发表于 2011-6-29 09:07:18

CPU-ID 后8位?

第一次听到有这种说法。

xinbinchi 发表于 2016-7-2 14:51:49

谢谢分享,感谢 。
页: [1]
查看完整版本: XX排课专家 V5.X 机器码固定