Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
вербовка-кабанов-в-heroes-2 [2015/08/11 06:10] danya |
вербовка-кабанов-в-heroes-2 [2018/09/16 15:24] (текущий) danya |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
Сперва установил IDA Free. Скачал здесь https://www.hex-rays.com/products/ida/support/download_freeware.shtml | Сперва установил IDA Free. Скачал здесь https://www.hex-rays.com/products/ida/support/download_freeware.shtml | ||
- | Запустил и в IDA файл Heroes2.exe в который играю в Вosbox | + | Запустил и в IDA файл Heroes2.exe в который играю в Dosbox |
При открытии файла IDA о чем то ругалась | При открытии файла IDA о чем то ругалась | ||
Строка 62: | Строка 62: | ||
0. Сделайте сейв, в котором герой стоит в одном шаге от Хижины крестьян. Убедитесь, что у героя есть отряд крестьян в первом слоте. | 0. Сделайте сейв, в котором герой стоит в одном шаге от Хижины крестьян. Убедитесь, что у героя есть отряд крестьян в первом слоте. | ||
+ | |||
1. Сделайте дамп памяти: memdumpbin ds:0 1000000 | 1. Сделайте дамп памяти: memdumpbin ds:0 1000000 | ||
+ | |||
2. Откройте дамп и найдите в нём структуру данных, соответствующую Вашему герою. Искать быстрее всего по имени героя (например, "Maximus"). Прибавьте к адресу, по которому хранится имя героя (т.е. первый байт имени), число 0x60 (60h). Так Вы получите адрес, по которому хранится численность самого первого (левого) отряда в армии героя. Обозначим этот адрес как Addr | 2. Откройте дамп и найдите в нём структуру данных, соответствующую Вашему герою. Искать быстрее всего по имени героя (например, "Maximus"). Прибавьте к адресу, по которому хранится имя героя (т.е. первый байт имени), число 0x60 (60h). Так Вы получите адрес, по которому хранится численность самого первого (левого) отряда в армии героя. Обозначим этот адрес как Addr | ||
+ | |||
3. Установите брейкпоинт по этому адресу: bplm Addr | 3. Установите брейкпоинт по этому адресу: bplm Addr | ||
+ | |||
4. Теперь посетите героем Хижину крестьян. | 4. Теперь посетите героем Хижину крестьян. | ||
+ | |||
{{:bp_krestiane.png|}} | {{:bp_krestiane.png|}} | ||
Строка 103: | Строка 108: | ||
Так у меня вот так | Так у меня вот так | ||
+ | Код: | ||
+ | seg000:0000B093 ; --------------------------------------------------------------------------- | ||
+ | seg000:0000B093 | ||
+ | seg000:0000B093 loc_B093: ; CODE XREF: seg000:0000B07Cj | ||
+ | seg000:0000B093 mov ecx, 0Ah | ||
+ | seg000:0000B098 lea edi, [ebp-30h] | ||
+ | seg000:0000B09B mov esi, 2CC208h | ||
+ | seg000:0000B0A0 rep movsd | ||
+ | seg000:0000B0A2 push 0FFFFFFFFh | ||
+ | seg000:0000B0A4 push 0 | ||
+ | seg000:0000B0A6 push 0FFFFFFFFh | ||
+ | seg000:0000B0A8 push 0 | ||
+ | seg000:0000B0AA push 0FFFFFFFFh | ||
+ | seg000:0000B0AC lea edx, [eax+17h] | ||
+ | seg000:0000B0AF mov ecx, 2AC629h | ||
+ | seg000:0000B0B4 mov ebx, 2 | ||
+ | seg000:0000B0B9 mov eax, [ebp-34h] | ||
+ | seg000:0000B0BC call sub_A72D | ||
+ | seg000:0000B0C1 mov eax, ds:2DED70h | ||
+ | seg000:0000B0C6 cmp dword ptr [eax+5Ah], 7805h | ||
+ | seg000:0000B0CD jnz loc_9F95 | ||
+ | seg000:0000B0D3 mov ebx, [ebp-8] | ||
+ | seg000:0000B0D6 shl ebx, 2 | ||
+ | seg000:0000B0D9 mov edx, [ebx+ebp-30h] | ||
+ | seg000:0000B0DD mov esi, [ebp-38h] | ||
+ | seg000:0000B0E0 add esi, 65h ; 'e' | ||
+ | seg000:0000B0E3 mov eax, esi | ||
+ | seg000:0000B0E5 call sub_1520E | ||
+ | seg000:0000B0EA test eax, eax | ||
+ | seg000:0000B0EC jz short loc_B11D | ||
+ | seg000:0000B0EE mov eax, [ebp-3Ch] | ||
+ | seg000:0000B0F1 mov ax, [eax+4] | ||
+ | seg000:0000B0F5 shr ax, 3 | ||
+ | seg000:0000B0F9 and eax, 0FFFFh | ||
+ | seg000:0000B0FE mov edx, [ebx+ebp-30h] | ||
+ | seg000:0000B102 mov ecx, 0FFFFFFFFh | ||
+ | seg000:0000B107 mov ebx, eax | ||
+ | seg000:0000B109 mov eax, esi | ||
+ | seg000:0000B10B call sub_1526A | ||
+ | seg000:0000B110 mov eax, [ebp-3Ch] | ||
+ | seg000:0000B113 and word ptr [eax+4], 7 | ||
+ | seg000:0000B118 jmp loc_9F95 | ||
+ | seg000:0000B11D ; --------------------------------------------------------------------------- | ||
- | seg000:0000B093 ; --------------------------------------------------------------------------- | ||
- | seg000:0000B093 | ||
- | seg000:0000B093 loc_B093: ; CODE XREF: seg000:0000B07Cj | ||
- | seg000:0000B093 mov ecx, 0Ah | ||
- | seg000:0000B098 lea edi, [ebp-30h] | ||
- | seg000:0000B09B mov esi, 2CC208h | ||
- | seg000:0000B0A0 rep movsd | ||
- | seg000:0000B0A2 push 0FFFFFFFFh | ||
- | seg000:0000B0A4 push 0 | ||
- | seg000:0000B0A6 push 0FFFFFFFFh | ||
- | seg000:0000B0A8 push 0 | ||
- | seg000:0000B0AA push 0FFFFFFFFh | ||
- | seg000:0000B0AC lea edx, [eax+17h] | ||
- | seg000:0000B0AF mov ecx, 2AC629h | ||
- | seg000:0000B0B4 mov ebx, 2 | ||
- | seg000:0000B0B9 mov eax, [ebp-34h] | ||
- | seg000:0000B0BC call sub_A72D | ||
- | seg000:0000B0C1 mov eax, ds:2DED70h | ||
- | seg000:0000B0C6 cmp dword ptr [eax+5Ah], 7805h | ||
- | seg000:0000B0CD jnz loc_9F95 | ||
- | seg000:0000B0D3 mov ebx, [ebp-8] | ||
- | seg000:0000B0D6 shl ebx, 2 | ||
- | seg000:0000B0D9 mov edx, [ebx+ebp-30h] | ||
- | seg000:0000B0DD mov esi, [ebp-38h] | ||
- | seg000:0000B0E0 add esi, 65h ; 'e' | ||
- | seg000:0000B0E3 mov eax, esi | ||
- | seg000:0000B0E5 call sub_1520E | ||
- | seg000:0000B0EA test eax, eax | ||
- | seg000:0000B0EC jz short loc_B11D | ||
- | seg000:0000B0EE mov eax, [ebp-3Ch] | ||
- | seg000:0000B0F1 mov ax, [eax+4] | ||
- | seg000:0000B0F5 shr ax, 3 | ||
- | seg000:0000B0F9 and eax, 0FFFFh | ||
- | seg000:0000B0FE mov edx, [ebx+ebp-30h] | ||
- | seg000:0000B102 mov ecx, 0FFFFFFFFh | ||
- | seg000:0000B107 mov ebx, eax | ||
- | seg000:0000B109 mov eax, esi | ||
- | seg000:0000B10B call sub_1526A | ||
- | seg000:0000B110 mov eax, [ebp-3Ch] | ||
- | seg000:0000B113 and word ptr [eax+4], 7 | ||
- | seg000:0000B118 jmp loc_9F95 | ||
- | seg000:0000B11D ; --------------------------------------------------------------------------- | ||
- | В точности так как у вас не нашел | + | |
+ | В точности так как у AlexSpl не нашел | ||
Строка 161: | Строка 168: | ||
Нашел похожее но с другими буквами | Нашел похожее но с другими буквами | ||
- | Код:seg000:0000B093 mov ecx, 0Ah | + | Код: |
+ | seg000:0000B093 mov ecx, 0Ah | ||
seg000:0000B098 lea edi, [ebp-30h] | seg000:0000B098 lea edi, [ebp-30h] | ||
seg000:0000B09B mov esi, 2CC208h | seg000:0000B09B mov esi, 2CC208h | ||
Строка 170: | Строка 178: | ||
На всякий случай написал в DosBox Debuger d ds:2CC208 | На всякий случай написал в DosBox Debuger d ds:2CC208 | ||
- | И попал в ту самую последовательность :smile21: | + | И попал в ту самую последовательность |
01 00 00 00 0B 00 00 00 00 00 00 00 15 00 00 00 15 00 00 00 14 00 00 00 26 00 00 00 0C 00 00 00 1D 00 00 00 2F 00 00 00 | 01 00 00 00 0B 00 00 00 00 00 00 00 15 00 00 00 15 00 00 00 14 00 00 00 26 00 00 00 0C 00 00 00 1D 00 00 00 2F 00 00 00 | ||
{{:bp_debug_tablica.png|}} | {{:bp_debug_tablica.png|}} | ||
- | |||
- | |||