Ранг: 0.6 (гость) Активность: 0=0 Статус: Участник
|
Создано: 13 апреля 2008 16:51 · Личное сообщение · #1
Здравствуйте, я еще мало разбираюсь в иследовании программ, по этому хочу поинтересоватся кто нибудь может подсказать как можно написать универсальный патчер к этим играм или кейген. С игр от NevoSoft я снимал ограничения следующим образом. Беру любую игру например Granny In Paradisenevosoft.ru/downloads/Granny-In-Paradise.exe, запускаю программу через OllyDBG, в меню игры захожу ввести ключ ввожу пароль A12345A ввожу адрес электронной почты a@a.a нажимаю ОК, программа естественно пишет "Ключ не верен" я опять ввожу все заново и делаю поиск пароля(A12345A) по Memory Map, ставлю брекпоинт,нажимаю ок в игре и паподаю сюда:
00401C80 /$ 51 PUSH ECX
00401C81 |. 33C0 XOR EAX,EAX
00401C83 |> 8A88 E8F24000 /MOV CL,BYTE PTR DS:[EAX+40F2E8] <=
00401C89 |. 8888 C1ED4000 |MOV BYTE PTR DS:[EAX+40EDC1],CL
00401C8F |. 40 |INC EAX
00401C90 |. 84C9 |TEST CL,CL
00401C92 |.^75 EF \JNZ SHORT heroes_o.00401C83
00401C94 |. 8D0424 LEA EAX,DWORD PTR SS:[ESP]
00401C97 |. 50 PUSH EAX
00401C98 |. E8 EB140000 CALL heroes_o.00403188
00401C9D |. 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00401CA1 |. B8 07452EC2 MOV EAX,C22E4507
00401CA6 |. F7E9 IMUL ECX
00401CA8 |. 03D1 ADD EDX,ECX
00401CAA |. C1FA 10 SAR EDX,10
00401CAD |. 8BCA MOV ECX,EDX
00401CAF |. C1E9 1F SHR ECX,1F
00401CB2 |. 03CA ADD ECX,EDX
00401CB4 |. 890D 48EF4000 MOV DWORD PTR DS:[40EF48],ECX
00401CBA |. E8 41F3FFFF CALL heroes_o.00401000
00401CBF |. 83C4 08 ADD ESP,8
00401CC2 \. C3 RETN
захожу в 00401CBA |. E8 41F3FFFF CALL heroes_o.00401000 попадаю сюда
00401000 /$ 68 C1ED4000 PUSH heroes_o.0040EDC1 ; ASCII "A12345A"
00401005 |. E8 0F220000 CALL heroes_o.00403219
0040100A |. 8B15 A8F34000 MOV EDX,DWORD PTR DS:[40F3A8]
00401010 |. 83C4 04 ADD ESP,4
00401013 |. B9 2E000000 MOV ECX,2E
00401018 |. 56 PUSH ESI
00401019 |. 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
00401020 |> 8BF2 /MOV ESI,EDX
00401022 |. D3E6 |SHL ESI,CL
00401024 |. 33F0 |XOR ESI,EAX
00401026 |. 81E6 FFFFFF7F |AND ESI,7FFFFFFF
0040102C |. 83E9 05 |SUB ECX,5
0040102F |. 8BC6 |MOV EAX,ESI
00401031 |.^79 ED \JNS SHORT heroes_o.00401020
00401033 |. 8BC8 MOV ECX,EAX
00401035 |. 81E1 FFFF0000 AND ECX,0FFFF
0040103B |. C1E8 10 SHR EAX,10
0040103E |. 3BC8 CMP ECX,EAX
00401040 |. 5E POP ESI
00401041 |. 75 14 JNZ SHORT heroes_o.00401057
00401043 |. A1 48EF4000 MOV EAX,DWORD PTR DS:[40EF48]
00401048 |. 2BC1 SUB EAX,ECX
0040104A |. 83F8 02 CMP EAX,2
0040104D |. 7F 08 JG SHORT heroes_o.00401057
0040104F |. 83F8 FF CMP EAX,-1
00401052 |. 7C 03 JL SHORT heroes_o.00401057
00401054 |. B0 01 MOV AL,1
00401056 |. C3 RETN
00401057 |> 32C0 XOR AL,AL
00401059 \. C3 RETN
Тут я изменяю вот эту строку 00401057 |> 32C0 XOR AL,AL вот так :
было XOR AL,AL стало MOV AL,1 и программа снимает ограничения.
Помогите разобратся как можно написать универсальный кейген или патчер.
Извените если, что не так
| Сообщение посчитали полезным: |