Камрад
|
Урааааа Я ЕЕ ДОБИЛ!!!
Я уже начал думать что фиг чего сделаешь, массив фиксированного размера для экспы...Нда ну да ничего И тут пришла мне в голову мысль - а нафиг вообще нужна таблица с экспой???? ее же очень просто можно рассчитать. Так что теперь файл exptable.tbl у меня при повышении уровня вообще не учитывается.
Как этого добиться:
И так все сначала, начнем с чистого экзешника
1.Берем HIEW открываем в нем nwmain.exe переходим в просмотр кода(ENTER ENTER) - ищем(F7) такую последовательность FF 52 54 8B 88 AC 00 00 00 она должна быть в двух местах За этой последовательностью надо убить первый переход (JGE куда-то) Жмем F3 и затираем его Nop`om (0x90) Первый переход там 2 байта длинной второй 6 байтов, ПОСЛЕ ПЕРВОГО ПЕРЕХОДА (который 2-х байтовый) надо дополнительно найти еще один переход он там недалеко выглядит он как 73 15 его надо заменить на EB 15 (без этого уровень не сохраниться)
2. Теперь самое неприятное исправлять прийдется много
Надо найти такой блок кода:
006917B7 |. 8B5C24 14 MOV EBX,[DWORD SS:ESP+14]
006917BB 8B15 14F48500 MOV EDX,[DWORD DS:85F414]
006917C1 8B4B 68 MOV ECX,[DWORD DS:EBX+68] ; exp in ECX
006917C4 81E7 FF000000 AND EDI,0FF ; level in EDI
006917CA 3B4CBA 1C CMP ECX,[DWORD DS:EDX+EDI*4+1C] ; cmp for cheking exp for next level
006917CE 72 0D JB SHORT nwmain.006917DD
006917D0 5F POP EDI
006917D1 5E POP ESI
006917D2 5D POP EBP
006917D3 B8 01000000 MOV EAX,1
006917D8 5B POP EBX
006917D9 83C4 08 ADD ESP,8
006917DC C3 RETN
006917DD |> 5F POP EDI
006917DE |. 5E POP ESI
006917DF |. 5D POP EBP
006917E0 33C0 XOR EAX,EAX
006917E2 5B POP EBX
006917E3 83C4 08 ADD ESP,8
006917E6 C3 RETN
006917E7 90 NOP
006917E8 90 NOP
006917E9 90 NOP
006917EA 90 NOP
006917EB 90 NOP
006917EC 90 NOP
006917ED 90 NOP
006917EE 90 NOP
006917EF 90 NOP
и заменить его на
006917B7 |. 8B5C24 14 MOV EBX,[DWORD SS:ESP+14]
006917BB 8B4B 68 MOV ECX,[DWORD DS:EBX+68]
006917BE 81E7 FF000000 AND EDI,0FF
006917C4 33C0 XOR EAX,EAX
006917C6 33DB XOR EBX,EBX
006917C8 33F6 XOR ESI,ESI
006917CA BA E8030000 MOV EDX,3E8
006917CF 8BC3 MOV EAX,EBX
006917D1 0FAFC2 IMUL EAX,EDX
006917D4 03F0 ADD ESI,EAX
006917D6 43 INC EBX
006917D7 3BDF CMP EBX,EDI
006917D9 ^ 76 F4 JBE SHORT nwmain.006917CF
006917DB 8BC6 MOV EAX,ESI
006917DD |> 5F POP EDI
006917DE |. 5E POP ESI
006917DF |. 5D POP EBP
006917E0 5B POP EBX
006917E1 83C4 08 ADD ESP,8
006917E4 3BC8 CMP ECX,EAX
006917E6 7D 02 JGE SHORT nwmain.006917EA
006917E8 33C0 XOR EAX,EAX
006917EA C3 RETN
006917EB 90 NOP
006917EC 90 NOP
006917ED 90 NOP
006917EE 90 NOP
006917EF 90 NOP
После этого Если ВСЕ сделать ПРАВИЛЬНО уровень можно будет поднимать дальше 21 
Все это я привел для тех у кого версия экзешника отличается от моей, для тех у кого она такаяже (длина файла nwmain.exe 5180416) привожу сравнение двух файлов старого и нового:
Comparing files nwmain.old.exe and nwmain.new.exe
00290BBA: 7D 90
00290BBB: 25 90
00290BDF: 73 EB
00290D4B: 0F 90
00290D4C: 8D 90
00290D4D: 8C 90
00290D4E: 00 90
00290D4F: 00 90
00290D50: 00 90
00290DBC: 15 4B
00290DBD: 14 68
00290DBE: F4 81
00290DBF: 85 E7
00290DC0: 00 FF
00290DC1: 8B 00
00290DC2: 4B 00
00290DC3: 68 00
00290DC4: 81 33
00290DC5: E7 C0
00290DC6: FF 33
00290DC7: 00 DB
00290DC8: 00 33
00290DC9: 00 F6
00290DCA: 3B BA
00290DCB: 4C E8
00290DCC: BA 03
00290DCD: 1C 00
00290DCE: 72 00
00290DCF: 0D 8B
00290DD0: 5F C3
00290DD1: 5E 0F
00290DD2: 5D AF
00290DD3: B8 C2
00290DD4: 01 03
00290DD5: 00 F0
00290DD6: 00 43
00290DD7: 00 3B
00290DD8: 5B DF
00290DD9: 83 76
00290DDA: C4 F4
00290DDB: 08 8B
00290DDC: C3 C6
00290DE0: 33 5B
00290DE1: C0 83
00290DE2: 5B C4
00290DE3: 83 08
00290DE4: C4 3B
00290DE5: 08 C8
00290DE6: C3 72
00290DE7: 90 04
00290DE8: 90 33
00290DE9: 90 C0
00290DEA: 90 40
00290DEB: 90 C3
00290DEC: 90 33
00290DED: 90 C0
00290DEE: 90 C3
|