IPB

Здравствуйте, гость ( Вход | Регистрация )

23 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Обсуждение инженерного анализа
Чёртос-2 (Chorto...
сообщение 09 Mar 2008, 20:40
Сообщение #41

The Unicode Man
Сообщений: 993
Спасибо сказали: 6 раз




А ведь я это читал! banghead.gif


--------------------
© 2005–2011 Чёртос-2
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 01 Jul 2008, 16:30
Сообщение #42

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




А все же как подключить библиотеку dll к h3wog? У меня проблема: нашел в нем пустую часть кода (может там и должно быть пусто) в районе 0031А55А и изменил так кое-что. В результате все, что я хотел стало работать, но появился жесткий баг - нельзя ни зайти, ни выйти из подземелья, пишет, что проход типа завален, будто нет другого туннеля. Так на всех картах. Пробовал в другой части кода ближе к концу - та же ерунда. НИД ХЕЛП.
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 01 Jul 2008, 16:33
Сообщение #43

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




может эта область внутри какой-то функции, а ты нарушил что-то там.
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 01 Jul 2008, 20:36
Сообщение #44

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Вот отрывок кода

Код
0031A342   8D42 FF          LEA EAX,DWORD PTR DS:[EDX-1]
0031A345   5B               POP EBX
0031A346   C3               RETN
0031A347   8D42 FE          LEA EAX,DWORD PTR DS:[EDX-2]
0031A34A   5E               POP ESI
0031A34B   5F               POP EDI
0031A34C   5B               POP EBX
0031A34D   C3               RETN
0031A34E   8D42 FD          LEA EAX,DWORD PTR DS:[EDX-3]
0031A351   5E               POP ESI
0031A352   5F               POP EDI
0031A353   5B               POP EBX
0031A354   C3               RETN
0031A355   8D42 FC          LEA EAX,DWORD PTR DS:[EDX-4]
0031A358   5E               POP ESI
0031A359   5F               POP EDI
0031A35A   5B               POP EBX
0031A35B   C3               RETN
0031A35C   CC               INT3
0031A35D   CC               INT3
0031A35E   CC               INT3
0031A35F   CC               INT3
0031A360   FF25 A4007800    JMP DWORD PTR DS:[7800A4]
0031A366   0000             ADD BYTE PTR DS:[EAX],AL
0031A368   0000             ADD BYTE PTR DS:[EAX],AL
0031A36A   0000             ADD BYTE PTR DS:[EAX],AL
0031A36C   0000             ADD BYTE PTR DS:[EAX],AL

Дальше идут сплошные нули, а затем

Код
0031AFF8   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFA   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFC   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFE   0000             ADD BYTE PTR DS:[EAX],AL
0031B000   EE               OUT DX,AL
0031B001   0D 0800B00B      OR EAX,0BB00008
0031B006   0800             OR BYTE PTR DS:[EAX],AL
0031B008   C40B             LES ECX,FWORD PTR DS:[EBX]
0031B00A   0800             OR BYTE PTR DS:[EAX],AL
0031B00C   FC               CLD
0031B00D   0D 0800000C      OR EAX,0C000008
0031B012   0800             OR BYTE PTR DS:[EAX],AL
0031B014   0E               PUSH CS
0031B015   0C 08            OR AL,8
0031B017   0022             ADD BYTE PTR DS:[EDX],AH
0031B019   0C 08            OR AL,8
0031B01B   00340C           ADD BYTE PTR SS:[ESP+ECX],DH
0031B01E   0800             OR BYTE PTR DS:[EAX],AL
0031B020   44               INC ESP

На функцию не особо похоже. Хотя может я и ошибаюсь.
Поэтому и нид хелп.
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 01 Jul 2008, 21:12 (Сообщение отредактировал FakerNeo - 01 Jul 2008, 21:25)
Сообщение #45







Цитата
Дальше идут сплошные нули, а затем

Код
0031AFF8   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFA   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFC   0000             ADD BYTE PTR DS:[EAX],AL
0031AFFE   0000             ADD BYTE PTR DS:[EAX],AL
0031B000   EE               OUT DX,AL
0031B001   0D 0800B00B      OR EAX,0BB00008
0031B006   0800             OR BYTE PTR DS:[EAX],AL
0031B008   C40B             LES ECX,FWORD PTR DS:[EBX]
0031B00A   0800             OR BYTE PTR DS:[EAX],AL
0031B00C   FC               CLD
0031B00D   0D 0800000C      OR EAX,0C000008
0031B012   0800             OR BYTE PTR DS:[EAX],AL
0031B014   0E               PUSH CS
0031B015   0C 08            OR AL,8
0031B017   0022             ADD BYTE PTR DS:[EDX],AH
0031B019   0C 08            OR AL,8
0031B01B   00340C           ADD BYTE PTR SS:[ESP+ECX],DH
0031B01E   0800             OR BYTE PTR DS:[EAX],AL
0031B020   44               INC ESP

На функцию не особо похоже. Хотя может я и ошибаюсь.
Поэтому и нид хелп.

Это больше похоже на данные чем на код. Ткие участки кода в дизассемблере не смотрятся. Посмотри его в дампе. Больше похоже на какую-то структуру данных...


Вот те код где лично я вносил изменения

Код
0050CA4A  |> /8B43 20       /MOV EAX,DWORD PTR [EBX+20]
0050CA4D  |. |8BCF          |MOV ECX,EDI
0050CA4F  |. |8B14B0        |MOV EDX,DWORD PTR [EAX+ESI*4]
0050CA52  |. |E8 99010000   |CALL h3wog.0050CBF0
0050CA57  |. |47            |INC EDI
0050CA58  |. |46            |INC ESI
0050CA59  |. |83FF 0E       |CMP EDI,0E
0050CA5C  |.^\7C EC         \JL SHORT h3wog.0050CA4A
0050CA5E  |.  83C6 03       ADD ESI,3
0050CA61  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CA68  |>  8B4B 20       /MOV ECX,DWORD PTR [EBX+20]
0050CA6B  |.  8B14B1        |MOV EDX,DWORD PTR [ECX+ESI*4]
0050CA6E  |.  8BCF          |MOV ECX,EDI
0050CA70  |.  E8 7B010000   |CALL h3wog.0050CBF0
0050CA75  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CA78  |.  47            |INC EDI
0050CA79  |.  46            |INC ESI
0050CA7A  |.  48            |DEC EAX
0050CA7B  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CA7E  |.^ 75 E8         \JNZ SHORT h3wog.0050CA68
0050CA80  |.  83C6 03       ADD ESI,3
0050CA83  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CA8A  |>  8B53 20       /MOV EDX,DWORD PTR [EBX+20]
0050CA8D  |.  8BCF          |MOV ECX,EDI
0050CA8F  |.  8B14B2        |MOV EDX,DWORD PTR [EDX+ESI*4]
0050CA92  |.  E8 59010000   |CALL h3wog.0050CBF0
0050CA97  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CA9A  |.  47            |INC EDI
0050CA9B  |.  46            |INC ESI
0050CA9C  |.  48            |DEC EAX
0050CA9D  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CAA0  |.^ 75 E8         \JNZ SHORT h3wog.0050CA8A
0050CAA2  |.  83C6 03       ADD ESI,3
0050CAA5  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CAAC  |>  8B43 20       /MOV EAX,DWORD PTR [EBX+20]
0050CAAF  |.  8BCF          |MOV ECX,EDI
0050CAB1  |.  8B14B0        |MOV EDX,DWORD PTR [EAX+ESI*4]
0050CAB4  |.  E8 37010000   |CALL h3wog.0050CBF0
0050CAB9  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CABC  |.  47            |INC EDI
0050CABD  |.  46            |INC ESI
0050CABE  |.  48            |DEC EAX
0050CABF  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CAC2  |.^ 75 E8         \JNZ SHORT h3wog.0050CAAC
0050CAC4  |.  83C6 03       ADD ESI,3
0050CAC7  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CACE  |>  8B4B 20       /MOV ECX,DWORD PTR [EBX+20]
0050CAD1  |.  8B14B1        |MOV EDX,DWORD PTR [ECX+ESI*4]
0050CAD4  |.  8BCF          |MOV ECX,EDI
0050CAD6  |.  E8 15010000   |CALL h3wog.0050CBF0
0050CADB  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CADE  |.  47            |INC EDI
0050CADF  |.  46            |INC ESI
0050CAE0  |.  48            |DEC EAX
0050CAE1  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CAE4  |.^ 75 E8         \JNZ SHORT h3wog.0050CACE
0050CAE6  |.  83C6 03       ADD ESI,3
0050CAE9  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CAF0  |>  8B53 20       /MOV EDX,DWORD PTR [EBX+20]
0050CAF3  |.  8BCF          |MOV ECX,EDI
0050CAF5  |.  8B14B2        |MOV EDX,DWORD PTR [EDX+ESI*4]
0050CAF8  |.  E8 F3000000   |CALL h3wog.0050CBF0
0050CAFD  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CB00  |.  47            |INC EDI
0050CB01  |.  46            |INC ESI
0050CB02  |.  48            |DEC EAX
0050CB03  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CB06  |.^ 75 E8         \JNZ SHORT h3wog.0050CAF0
0050CB08  |.  83C6 03       ADD ESI,3
0050CB0B  |.  C745 FC 0E000>MOV [LOCAL.1],0E
0050CB12  |>  8B43 20       /MOV EAX,DWORD PTR [EBX+20]
0050CB15  |.  8BCF          |MOV ECX,EDI
0050CB17  |.  8B14B0        |MOV EDX,DWORD PTR [EAX+ESI*4]
0050CB1A  |.  E8 D1000000   |CALL h3wog.0050CBF0
0050CB1F  |.  8B45 FC       |MOV EAX,[LOCAL.1]
0050CB22  |.  47            |INC EDI
0050CB23  |.  46            |INC ESI
0050CB24  |.  48            |DEC EAX
0050CB25  |.  8945 FC       |MOV [LOCAL.1],EAX
0050CB28  |.^ 75 E8         \JNZ SHORT h3wog.0050CB12


А вот сами изменения, с подгруженными библиотеками. Как видно высвободилось туева хуча куда

Код
0050CA41   > \56            PUSH ESI
0050CA42   .  57            PUSH EDI
0050CA43   .  33FF          XOR EDI,EDI
0050CA45   .  BE 02000000   MOV ESI,2
0050CA4A   >  8B43 20       MOV EAX,DWORD PTR [EBX+20]
0050CA4D   .  8BCF          MOV ECX,EDI
0050CA4F   .  8B14B0        MOV EDX,DWORD PTR [EAX+ESI*4]
0050CA52   .  E8 99010000   CALL h3te_cra.0050CBF0
0050CA57   .  47            INC EDI
0050CA58   .  46            INC ESI
0050CA59   .  83FF 0E       CMP EDI,0E
0050CA5C   .^ 7C EC         JL SHORT h3te_cra.0050CA4A
0050CA5E   >  83C6 03       ADD ESI,3
0050CA61   .  C745 FC 0E000>MOV DWORD PTR [EBP-4],0E
0050CA68   >  8B4B 20       MOV ECX,DWORD PTR [EBX+20]
0050CA6B   .  8B14B1        MOV EDX,DWORD PTR [ECX+ESI*4]
0050CA6E   .  8BCF          MOV ECX,EDI
0050CA70   .  E8 7B010000   CALL h3te_cra.0050CBF0
0050CA75   .  8B45 FC       MOV EAX,DWORD PTR [EBP-4]
0050CA78   .  47            INC EDI
0050CA79   .  46            INC ESI
0050CA7A   .  48            DEC EAX
0050CA7B   .  8945 FC       MOV DWORD PTR [EBP-4],EAX
0050CA7E   .^ 75 E8         JNZ SHORT h3te_cra.0050CA68
0050CA80   .  83FE 32       CMP ESI,32
0050CA83   .^ 7C D9         JL SHORT h3te_cra.0050CA5E
0050CA85   .  83FE 43       CMP ESI,43
0050CA88   .^ 7C D4         JL SHORT h3te_cra.0050CA5E
0050CA8A   .  83FE 54       CMP ESI,54
0050CA8D   .^ 7C CF         JL SHORT h3te_cra.0050CA5E
0050CA8F   .  83FE 65       CMP ESI,65
0050CA92   .^ 7C CA         JL SHORT h3te_cra.0050CA5E
0050CA94   .  83FE 76       CMP ESI,76
0050CA97   .^ 7C C5         JL SHORT h3te_cra.0050CA5E
0050CA99   .  E9 AE000000   JMP h3te_cra.0050CB4C
0050CA9E   .  4D 6F 6E 73 7>ASCII "Monstr.dll",0
0050CAA9   .  4D 6E 73 74 7>ASCII "MnstrStr",0
0050CAB2   >  60            PUSHAD
0050CAB3   .  9C            PUSHFD
0050CAB4   .  68 9ECA5000   PUSH h3te_cra.0050CA9E                 ; /FileName = "Monstr.dll"
0050CAB9   .  E8 B9522F7C   CALL kernel32.LoadLibraryA             ; \LoadLibraryA
0050CABE   .  68 A9CA5000   PUSH h3te_cra.0050CAA9                 ; /ProcNameOrOrdinal = "MnstrStr"
0050CAC3   .  50            PUSH EAX                               ; |hModule
0050CAC4   .  E8 D7E22F7C   CALL kernel32.GetProcAddress           ; \GetProcAddress
0050CAC9   .  FFD0          CALL NEAR EAX
0050CACB   .  9D            POPFD
0050CACC   .  61            POPAD
0050CACD   .  E9 CE600F00   JMP h3te_cra.00602BA0
0050CAD2   .  48 61 6C 6C 5>ASCII "HallStr",0
0050CADA      90            NOP
0050CADB      90            NOP
0050CADC      90            NOP
0050CADD      90            NOP
0050CADE      90            NOP
0050CADF   .  60            PUSHAD
0050CAE0   .  9C            PUSHFD
0050CAE1   .  8BD8          MOV EBX,EAX
0050CAE3   .  68 9ECA5000   PUSH h3te_cra.0050CA9E                 ; /FileName = "Monstr.dll"
0050CAE8   .  E8 8A522F7C   CALL kernel32.LoadLibraryA             ; \LoadLibraryA
0050CAED   .  68 D2CA5000   PUSH h3te_cra.0050CAD2                 ; /ProcNameOrOrdinal = "HallStr"
0050CAF2   .  50            PUSH EAX                               ; |hModule
0050CAF3   .  E8 A8E22F7C   CALL kernel32.GetProcAddress           ; \GetProcAddress
0050CAF8   .  90            NOP
0050CAF9   .  FFD0          CALL NEAR EAX
0050CAFB   .  9D            POPFD
0050CAFC   .  61            POPAD
0050CAFD   .- FF25 0BA95C00 JMP NEAR DWORD PTR [5CA90B]
0050CB03      90            NOP
0050CB04      90            NOP
0050CB05      90            NOP
0050CB06      90            NOP
0050CB07      90            NOP
0050CB08      90            NOP
0050CB09      90            NOP
0050CB0A      90            NOP
0050CB0B      90            NOP
0050CB0C      90            NOP
0050CB0D      90            NOP
0050CB0E      90            NOP
0050CB0F      90            NOP
0050CB10      90            NOP
0050CB11      90            NOP
0050CB12      90            NOP
0050CB13      90            NOP
0050CB14      90            NOP
0050CB15      90            NOP
0050CB16      90            NOP
0050CB17      90            NOP
0050CB18      90            NOP
0050CB19      90            NOP
0050CB1A      90            NOP
0050CB1B      90            NOP
0050CB1C      90            NOP
0050CB1D      90            NOP
0050CB1E      90            NOP
0050CB1F      90            NOP
0050CB20      90            NOP
0050CB21      90            NOP
0050CB22      90            NOP
0050CB23      90            NOP
0050CB24      90            NOP
0050CB25      90            NOP
0050CB26      90            NOP
0050CB27      90            NOP
0050CB28      90            NOP
0050CB29      90            NOP
0050CB2A      90            NOP
0050CB2B      90            NOP
0050CB2C      90            NOP
0050CB2D      90            NOP
0050CB2E      90            NOP
0050CB2F      90            NOP
0050CB30      90            NOP
0050CB31      90            NOP
0050CB32      90            NOP
0050CB33      90            NOP
0050CB34      90            NOP
0050CB35      90            NOP
0050CB36      90            NOP
0050CB37      90            NOP
0050CB38      90            NOP
0050CB39      90            NOP
0050CB3A      90            NOP
0050CB3B      90            NOP
0050CB3C      90            NOP
0050CB3D      90            NOP
0050CB3E      90            NOP
0050CB3F      90            NOP
0050CB40      90            NOP
0050CB41      90            NOP
0050CB42      90            NOP
0050CB43      90            NOP
0050CB44      90            NOP
0050CB45      90            NOP
0050CB46      90            NOP
0050CB47      90            NOP
0050CB48      90            NOP
0050CB49      90            NOP
0050CB4A      90            NOP
0050CB4B      90            NOP


И таких мест в героях валом. Успехов.
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 02 Jul 2008, 09:46
Сообщение #46

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Да, не очень понятно.

Код
0050CA7E   .^ 75 E8         JNZ SHORT h3te_cra.0050CA68
0050CA80   .  83FE 32       CMP ESI,32
0050CA83   .^ 7C D9         JL SHORT h3te_cra.0050CA5E
0050CA85   .  83FE 43       CMP ESI,43
0050CA88   .^ 7C D4         JL SHORT h3te_cra.0050CA5E
0050CA8A   .  83FE 54       CMP ESI,54
0050CA8D   .^ 7C CF         JL SHORT h3te_cra.0050CA5E
0050CA8F   .  83FE 65       CMP ESI,65
0050CA92   .^ 7C CA         JL SHORT h3te_cra.0050CA5E
0050CA94   .  83FE 76       CMP ESI,76
0050CA97   .^ 7C C5         JL SHORT h3te_cra.0050CA5E
0050CA99   .  E9 AE000000   JMP h3te_cra.0050CB4C

Это чтоб сократить код как я понял?

Код
0050CA9E   .  4D 6F 6E 73 7>ASCII "Monstr.dll",0
0050CAA9   .  4D 6E 73 74 7>ASCII "MnstrStr",0
0050CAB2   >  60            PUSHAD
0050CAB3   .  9C            PUSHFD
0050CAB4   .  68 9ECA5000   PUSH h3te_cra.0050CA9E                ; /FileName = "Monstr.dll"
0050CAB9   .  E8 B9522F7C   CALL kernel32.LoadLibraryA            ; \LoadLibraryA
0050CABE   .  68 A9CA5000   PUSH h3te_cra.0050CAA9                ; /ProcNameOrOrdinal = "MnstrStr"
0050CAC3   .  50            PUSH EAX                              ; |hModule
0050CAC4   .  E8 D7E22F7C   CALL kernel32.GetProcAddress          ; \GetProcAddress
0050CAC9   .  FFD0          CALL NEAR EAX

А это подгружаются библиотеки? Типа Monstr.dll. А что такое MnstrStr? Я в библиотеках не очень.
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 02 Jul 2008, 11:53
Сообщение #47







//Это чтоб сократить код как я понял?
именно

//А это подгружаются библиотеки? Типа Monstr.dll. А что такое MnstrStr? Я в библиотеках не очень.

Ты ж вроде подгружал библиотеку? MnstrStr - это название процедуры вызываемой из библиотеки
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 02 Jul 2008, 19:55
Сообщение #48

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




2FakerNeo

Цитата(FakerNeo @ 02 Jul 2008, 15:53)
Ты ж вроде подгружал библиотеку?

Нет не приходилось. Вот и хотел узнать, как это делать. Хотя наверно лучше найти/очистить часть кода, к которому бы игра не обращалась, и использовать его по своей нужде. Сможешь помочь?
Go to the top of the pageAdd Nick
 
+Quote Post
sergroj
сообщение 07 Jul 2008, 13:53
Сообщение #49

В миру GrayFace
Сообщений: 2 528
Спасибо сказали: 816 раз




В конце секции кода Героев, как и во всех прогах, есть место. А для чего тебе?


--------------------
ДНК банана на 50% состоит из человека.
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 07 Jul 2008, 14:29
Сообщение #50

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Мне нужно поменять некоторые параметры монстров. Ну к примеру поставить регенерацию, количество контратак, выстрел облаком смерти и т.д. Не хочу использовать ЕРМ.
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 07 Jul 2008, 18:24
Сообщение #51

пират с чёрной меткой
Сообщений: 23 596
Спасибо сказали: 12875 раз




А ерм здесь не поможет. Может ты можешь выделить эти свойства в формат опыта существ? И добавить в ерм-команду.


--------------------
Давший быка на убой не выпросил и печень на жаркое.
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 07 Jul 2008, 19:44
Сообщение #52

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Зависимость от опыта не хочу ставить. Регенерацию и контратаку организовать не сложно с помощью ЕРМ (уже делал), а вот с облаком смерти точно не поможет. Плюс еще кое-какие абилки добавить.

2sergroj
А где находится конец секции кода? Самый простой вариант - открыл h3wog, перешел в самый конец, изменил, загрузил, - сразу вылет в бою при выстреле (что-то типа не может записать в недопустимую область памяти).
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 08 Jul 2008, 15:45
Сообщение #53

пират с чёрной меткой
Сообщений: 23 596
Спасибо сказали: 12875 раз




Цитата(major @ 07 Jul 2008, 19:44)
Зависимость от опыта не хочу ставить.


Можно поставить линию опыта, которая с самого начала имеет 100%
Я это говорю для того, чтобы подобные линии можно было давать и другим существам. Регенерация и ответки действительно есть, а вот облако... Неплохо бы сделать. И давать на высшем уровне каким-нибудь Злобоглазам..


--------------------
Давший быка на убой не выпросил и печень на жаркое.
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 08 Jul 2008, 16:40
Сообщение #54







Цитата(major @ 07 Jul 2008, 19:44)
изменил, загрузил, - сразу вылет в бою при выстреле (что-то типа не может записать в недопустимую область памяти).

Видать так изменил...
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 09 Jul 2008, 08:02
Сообщение #55

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Цитата(FakerNeo @ 08 Jul 2008, 20:40)
Видать так изменил...

Вот оригинальный код
Код
002FF990   83F8 40          CMP EAX,40
002FF993   74 12            JE SHORT 002FF9A7
002FF995   83F8 41          CMP EAX,41
002FF998   74 0D            JE SHORT 002FF9A7
002FF99A   3D C4000000      CMP EAX,0C4
002FF99F   74 06            JE SHORT 002FF9A7
002FF9A1   B8 00000000      MOV EAX,0
002FF9A6   C3               RETN

Вот так работает (но появляется баг с подземельем)
Код
002FF990   E9 13AD0100      JMP 0031A6A8
002FF995   83F8 41          CMP EAX,41
002FF998   74 0D            JE SHORT 002FF9A7
002FF99A   3D C4000000      CMP EAX,0C4
002FF99F   74 06            JE SHORT 002FF9A7
002FF9A1   B8 00000000      MOV EAX,0
002FF9A6   C3               RETN
002FF9A7   B8 41000000      MOV EAX,41
002FF9AC   C3               RETN
...
0031A6A8   83F8 08          CMP EAX,8
0031A6AB  ^0F84 F652FEFF    JE 002FF9A7
0031A6B1   83F8 09          CMP EAX,9
0031A6B4  ^0F84 ED52FEFF    JE 002FF9A7
0031A6BA   3D A9000000      CMP EAX,0A9
0031A6BF  ^0F84 E252FEFF    JE 002FF9A7
0031A6C5   83F8 40          CMP EAX,40
0031A6C8  ^0F84 D952FEFF    JE 002FF9A7
0031A6CE  ^E9 C252FEFF      JMP 002FF995

А вот гарантирован вылет
Код
002FF990   E9 DB850400      JMP 00347F70
002FF995   83F8 41          CMP EAX,41
002FF998   74 0D            JE SHORT 002FF9A7
002FF99A   3D C4000000      CMP EAX,0C4
002FF99F   74 06            JE SHORT 002FF9A7
002FF9A1   B8 00000000      MOV EAX,0
002FF9A6   C3               RETN
...
00347F70   83F8 08          CMP EAX,8
00347F73  ^0F84 2E7AFBFF    JE 002FF9A7
00347F79   83F8 09          CMP EAX,9
00347F7C  ^0F84 257AFBFF    JE 002FF9A7
00347F82   83F8 40          CMP EAX,40
00347F85  ^0F84 1C7AFBFF    JE 002FF9A7
00347F8B  ^E9 057AFBFF      JMP 002FF995

с сообщением вот такого содержания
Код
EIP = 0x007ACF70, Access Violation. Attempt to [B]read[/B] the inaccessible data at 0x00000092
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 09 Jul 2008, 18:11
Сообщение #56







Ну тут нет никаких загадок. 0x007ACF70 - это твой джамп JMP 00347F70 на вроде как прописанный код. Но игра данный адрес использует для своих целей и заносит туда данные. На моей машине там dd 32 , а это равнозначно команде

007ACF70 3200 XOR AL,BYTE PTR [EAX]

где в eax у тебя хранится номер монстра стреляющего. В твоем случае - это 92, т.е. балиста. естественно обращение по этому адресу запрещено.

Короче игра затирает твой код... smile.gif
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 09 Jul 2008, 18:33
Сообщение #57







Похожий случай и с подземельем
Go to the top of the pageAdd Nick
 
+Quote Post
CrackedMind
сообщение 10 Jul 2008, 10:55
Сообщение #58

openhomm developer
Сообщений: 214
Спасибо сказали: 39 раз




уж лучше добавить еще одну секцию кода, и джамп делать ту да smile.gif


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
sergroj
сообщение 12 Jul 2008, 13:47 (Сообщение отредактировал sergroj - 12 Jul 2008, 13:50)
Сообщение #59

В миру GrayFace
Сообщений: 2 528
Спасибо сказали: 816 раз




Секция .idata начинается по адресу 63A000, секция кода заканчивается на 639BF2. 1038 байта свободны. Так что в 639BF2 без проблем можно писать код загрузки dll.


--------------------
ДНК банана на 50% состоит из человека.
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 21 Jul 2008, 17:21
Сообщение #60

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Цитата(sergroj @ 12 Jul 2008, 17:47)
Секция .idata начинается по адресу 63A000, секция кода заканчивается на 639BF2. 1038 байта свободны. Так что в 639BF2 без проблем можно писать код загрузки dll.

А можно делать jump в эту часть кода? Попробовал, все равно вылетает с той же ошибкой. Куда можно джампнуть? Мне и 500 байт хватило бы.
Go to the top of the pageAdd Nick
 
+Quote Post

23 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19 March 2024 - 09:07
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика