vadimkara Опубликовано 15 января, 2013 Поделиться Опубликовано 15 января, 2013 Все привет не подскажите как найти адрес который определяет мои или врага жизни должны убавляться104C1FC1 - F2 0F10 4D E0 - movsd xmm1,[ebp-20]104C1FC6 - F2 0F5C C8 - subsd xmm1,xmm0104C1FCA - B8 00000000 - mov eax,00000000104C1FCF - 85 C0 - test eax,eax104C1FD1 - F2 0F11 4D E0 - movsd [ebp-20],xmm1104C1FD6 - 0F84 05000000 - je 104C1FE1104C1FDC - E9 10000000 - jmp 104C1FF1104C1FE1 - 8B 45 F8 - mov eax,[ebp-08]104C1FE4 - F2 0F10 45 E0 - movsd xmm0,[ebp-20]104C1FE9 - F2 0F11 80 38020000 - movsd [eax+00000238],xmm0 //инструкция что пишет жизни но пишет и мне и противнику104C1FF1 - 8B 5D FC - mov ebx,[ebp-04]104C1FF4 - 89 5D F8 - mov [ebp-08],ebx104C1FF7 - 8B 45 F8 - mov eax,[ebp-08]104C1FFA - 8B 80 60010000 - mov eax,[eax+00000160]104C2000 - 8B 5D 08 - mov ebx,[ebp+08] Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 15 января, 2013 Поделиться Опубликовано 15 января, 2013 С такой постановкой вопроса вам может помочь только определенный круг лиц.https://www.google.r...ь%20экстрасенса Ссылка на комментарий Поделиться на другие сайты Поделиться
vadimkara Опубликовано 15 января, 2013 Автор Поделиться Опубликовано 15 января, 2013 вообщем есть инструкция 104C1FE9 - F2 0F11 80 38020000 - movsd [eax+00000238],xmm0 которая пишет данные в адрес eax+00000238, данные наших жизнях и о жизнях противника. Делаю инъекцию типа mov [eax+00000238],нужное мне число, и бессмертными становятся все, куда копать дальше? По логике нужно найти адрес в который складывается значения для определения свой чужой но как его найти? Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 15 января, 2013 Поделиться Опубликовано 15 января, 2013 Все это есть на форумеhttp://forum.gamehac...рока-id-playershttp://forum.gamehac...ификатор-игрокаМожно еще найти указатель на адрес со здоровьем своего игрока, при помощи автоматического поисковика указателей. Найдется указатель, типа "game.exe+1234+1+2+238"Затем в скрипте написать что-то типа....label(hp)registersymbol(hp) cmp [[[game.exe+1234]+1]+2],eax jne short originalcode mov [hp],(float)1 movss xmm0,[hp]originalcode: movsd [eax+00000238],xmm0 jmp returnherehp: dd 0.....Но лучше почитать статьи и самому прийти к пониманию сути. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
vadimkara Опубликовано 15 января, 2013 Автор Поделиться Опубликовано 15 января, 2013 спасибо будем смотретьВот набросал код но скрипт врубаться не хочет[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)label(life)registersymbol(life)aobscan(aoblife,F2 0F 11 80 38 02 00 00 8B 5D FC 89 5D F8 8B 45 F8 8B 80 60 01 00 00 8B 5D 08 8B 0B 8B 49 14 8B 49 10)newmem:cmp [eax+00000228],1jne originalcodepush ecxmov ecx,[eax+00000250]movsd xmm0,[ecx]pop ecxoriginalcode:movsd [eax+00000238],xmm0exit:jmp returnhereaoblife:life:jmp newmemnopnopnopreturnhere:[DISABLE]dealloc(newmem)life:movsd [eax+00000238],xmm0unregistersymbol(life)может кто подскажет в чем косякполучилось методом упрощения зачем вообще создавать сохранять числа в отдельный регистр смотрю все так делаютрабочий код[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)label(life)registersymbol(life)aobscan(aoblife,F2 0F 11 80 38 02 00 00 8B 5D FC 89 5D F8 8B 45 F8 8B 80 60 01 00 00 8B 5D 08 8B 0B 8B 49 14 8B 49 10)newmem:cmp [eax+00000228],1jne originalcodemov [eax+00000238],4082C00000000000jmp exitoriginalcode:movsd [eax+00000238],xmm0exit:jmp returnhereaoblife:life:jmp newmemnopnopnopreturnhere:[DISABLE]dealloc(newmem)life:movsd [eax+00000238],xmm0unregistersymbol(life) Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 15 января, 2013 Поделиться Опубликовано 15 января, 2013 Вот в чем полезность статей. Минут 10 назад не знали, а теперь уже других начали подучивать ;PДа, можно обойтись без xmm0, а сразу в [eax+00000238] писать. Просто привычка у меня)А "создавать сохранять числа в отдельный регистр" нужно для...Хорошо когда значение здоровья постоянное, например 1.0 float. А если это рпг, где статы прокачиваются ? У вас на 1 уровне 100/100хп. Вы "сломали" здоровье и указали, чтобы у вас было всегда 100хп. Но вот вы вкачали 99 уровень персонажу и у вас уже 100/10.000 хп, а враги то стали сильнее. Получайте смерть от 1 удара. Хорошо, если вы заметили, а если вы не далеко прошли игру и уже зарилизили трейнер ? Можно продумать это наперед и указать, чтобы всегда было 999999хп. Будет работать, да.., но будет ли красиво выглядеть на 1 лвл 999999/100хп ? А если на 1ой инструкции "висит" не только ваше здоровье, но и ваших союзников, и значение у всех разное ? Вот поэтому и делают часто в трейнерах так, чтобы текущее значение равнялось максимальному, а не тупо вбить постоянное число. Ни только практично, но и красиво.А что не правильного в 1ом скрипте.., а фиг его знает, нету игры Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения