首页
社区
课程
招聘
[旧帖] [原创]XX排课专家 V5.X 机器码固定 0.00雪花
发表于: 2008-11-28 14:50 4173

[旧帖] [原创]XX排课专家 V5.X 机器码固定 0.00雪花

2008-11-28 14:50
4173
.

取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:[EBP-20]
0051B3C1  |.  68 54B45100          PUSH Course.0051B454
0051B3C6  |.  8D4D DC              LEA ECX,DWORD PTR SS:[EBP-24]
0051B3C9  |.  BA 08000000          MOV EDX,8
0051B3CE  |.  8B45 F4              MOV EAX,DWORD PTR SS:[EBP-C]
0051B3D1  |.  E8 4EE1EEFF          CALL Course.00409524                               ;  取第二组ID
0051B3D6  |.  FF75 DC              PUSH DWORD PTR SS:[EBP-24]
0051B3D9  |.  68 54B45100          PUSH Course.0051B454
0051B3DE  |.  8D4D D8              LEA ECX,DWORD PTR SS:[EBP-28]
0051B3E1  |.  BA 08000000          MOV EDX,8
0051B3E6  |.  8B45 F8              MOV EAX,DWORD PTR SS:[EBP-8]
0051B3E9  |.  E8 36E1EEFF          CALL Course.00409524                               ;  取第三组ID
0051B3EE  |.  FF75 D8              PUSH DWORD PTR SS:[EBP-28]
0051B3F1  |.  68 54B45100          PUSH Course.0051B454
0051B3F6  |.  8D4D D4              LEA ECX,DWORD PTR SS:[EBP-2C]
0051B3F9  |.  BA 08000000          MOV EDX,8
0051B3FE  |.  8B45 FC              MOV EAX,DWORD PTR SS:[EBP-4]
0051B401  |.  E8 1EE1EEFF          CALL Course.00409524                               ;  取第四组ID
0051B406  |.  FF75 D4              PUSH DWORD PTR SS:[EBP-2C]                         ;  这里来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:[EBP-2C]   // jmp 0052D1FC
0051B409  |.  8BC3          MOV EAX,EBX
0051B40B  |.  BA 07000000   MOV EDX,7

固定机器码代码如下:

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

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

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

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

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

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

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
   俺是来灌水的 ~~
2008-11-28 14:51
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
太厉害拉```` 高手的文章 跟着学都学不了````
2008-11-28 15:01
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了
2008-11-28 15:01
0
雪    币: 439
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
SMC功力不错...
一层,二层,三层.
很强大的SMC...
2008-11-28 16:04
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
2层。。。
不难!!
2008-11-28 17:30
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
这里没有用多层哦 这里的SMC就是壳出口点Patch出来的代码 思路和修改的方法都有了 实现上怎么搞都可以的 如果看的有些混乱 不若动手一下 ~
2008-11-29 07:50
0
游客
登录 | 注册 方可回帖
返回
//