misha Опубликовано 5 марта, 2012 Поделиться Опубликовано 5 марта, 2012 Что-то я совсем туплюВот есть у меня строка байтов: EB 00 90 90 Её длина 4байт.Адреса начала сканирования0000000000000000и конца7fffffffffffffff.Вот попробовал все это расставить: Показать контент { for(;*szMask;++szMask,++pData,++bMask) if(*szMask=='x' && *pData!=*bMask ) return false; return (*szMask) == NULL;}DWORD dwFindPattern(DWORD (0000000000000000),DWORD (7fffffffffffffff), BYTE *bMask, char * szMask) { for(DWORD i=0;i<dwLen;i++) if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) ) return (DWORD)(dwAddress+i); return NULL;}bool bDataCompare(const BYTE* (0EBh,000h,090h,090h), const BYTE* (x0xx), const char* (4))Посмотрите правильно вставил данные? Ссылка на комментарий Поделиться на другие сайты Поделиться
Synapsehome Опубликовано 5 марта, 2012 Поделиться Опубликовано 5 марта, 2012 В 05.03.2012 в 12:01, misha сказал: Что-то я совсем туплюВот есть у меня строка байтов: EB 00 90 90 Её длина 4байт.Адреса начала сканирования0000000000000000и конца7fffffffffffffff.Вот попробовал все это расставить: Показать контент { for(;*szMask;++szMask,++pData,++bMask) if(*szMask=='x' && *pData!=*bMask ) return false; return (*szMask) == NULL;}DWORD dwFindPattern(DWORD (0000000000000000),DWORD (7fffffffffffffff), BYTE *bMask, char * szMask) { for(DWORD i=0;i<dwLen;i++) if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) ) return (DWORD)(dwAddress+i); return NULL;}bool bDataCompare(const BYTE* (0EBh,000h,090h,090h), const BYTE* (x0xx), const char* (4))Посмотрите правильно вставил данные?misha, всё неправильно ))DWORD a = FindPattern( базовый адрес модуля, размер модуля, маска, маска статичных байтов );Полазей немного что такое c++ и верни функцию поиска паттернов в нормальный вид Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Kill1001 Опубликовано 26 апреля, 2012 Поделиться Опубликовано 26 апреля, 2012 Не доконца понял допустим у меня есть DMA адрес я AutoHack нашёл что то типа201544D0: mov eax, [ecx+0x30]20154480: mov eax, [ecx+0x30]20154590: mov eax, [ecx+0x30]2015449E: mov esi, [ecx+0x30]201544BB: mov [ecx+0x30], eaxНо что надо подставлять в int myGame_Address = Addr.ToDec("52C0000"); // Статичный адрес указателяint[] myGame_Offsets = { 0x42CA1A }; // Офсеты, смещение пишем в виде 0х--int myGame_Address = Addr.ToDec("52C0000"); // Статичный адрес указателяint[] myGame_Offsets = { 0x42CA1A }; // Офсеты, смещение пишем в виде 0х-- Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 27 апреля, 2012 Автор Поделиться Опубликовано 27 апреля, 2012 Надо найти сначала статич.. адрес указателя плюс офсеты и по нему выходим к ДМА и меняем значение в игре.Более подробно пишите вопрос с чего начали и что не получается? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Kill1001 Опубликовано 27 апреля, 2012 Поделиться Опубликовано 27 апреля, 2012 Открыл игру.Артмани нашел Адрес что то типа 111544D0В Tsearch вбил его поставил брек. И ранил героя.В итоге вышло то что сверху.PS С# и С++ знаю на оч хорошем уровне Но трейнер пишу впервые Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 27 апреля, 2012 Автор Поделиться Опубликовано 27 апреля, 2012 Tsearch и Артмани не помню когда послед. раз запускал.Советую ломать игрушки через Cheat Engine эт прога на многое способна в плане читинга. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Kill1001 Опубликовано 27 апреля, 2012 Поделиться Опубликовано 27 апреля, 2012 В 27.04.2012 в 16:15, ZOCKIR сказал: Tsearch и Артмани не помню когда послед. раз запускал.Советую ломать игрушки через Cheat Engine эт прога на многое способна в плане читинга.Ок а как тогда чере зCheat Engine всё это искать Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 27 апреля, 2012 Поделиться Опубликовано 27 апреля, 2012 Почитайте форум, как пользоваться сей программой тут уже рассматривалось. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 28 апреля, 2012 Поделиться Опубликовано 28 апреля, 2012 Извините за вопрос, я не шарю в этом. Вобщем я так понял всё записывается в игру через указатели, ок. А как тогда быть с патронами? Искать указатель для каждой пушки? Если в СЕ записал в инструкцию 99 и не паришься... Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Kill1001 Опубликовано 28 апреля, 2012 Поделиться Опубликовано 28 апреля, 2012 Ок.А что делать если адрес получился 0A37C9E0 а вот аффсет к немуedi*4+14 где edi = 0x0 Ссылка на комментарий Поделиться на другие сайты Поделиться
HPB Опубликовано 15 сентября, 2012 Поделиться Опубликовано 15 сентября, 2012 мог бы кто нибудь кинуть готовый проект просто чтоб работал а то я не пойму Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 15 сентября, 2012 Поделиться Опубликовано 15 сентября, 2012 Ну да, а как увидишь рабочий вариант, сразу все встанет на свои места?Никому не интересно делиться своими рабочими вариантами, учитывая то, что у каждого свой специфичный тренер.Так что читай матчасть, и прибудет с тобой сила! Ссылка на комментарий Поделиться на другие сайты Поделиться
HPB Опубликовано 16 сентября, 2012 Поделиться Опубликовано 16 сентября, 2012 сила прибыла но вот горе : ( игра закрывается здесь как по мне так плохой метод открытия процесса...у меня есть не большой кодик работы с VaMemory но беда я не знаю как работать там именно с указателем..а это тема здорово бы мне помогла : VAM = new VAMemory("Game"); // Имя процесса, без .exe! VAM.WriteByte((IntPtr)0x05AАF723, byte.Parse(textBox1.Text.ToString())); // Изменяем значение по адресу 01005194, не забываем про 0x********! вот изменяем значение адреса .значения для изменения берём из ТекстБокса , но проблема адрес является "указателем" но он должен указывать на один адрес и если к нему прибавить +30 то выйдем на главный! есть какиие способы так сделать?потом сделал по другому чтоб можно было вписывать адрес конечный ..но это не удобно нужно зайти через СЕ найти адрес конечный вписать сюда и то тоже не работало : ( VAM = new VAMemory("Game"); //Имя процесса, без Game int Jordan = Convert.ToInt32(textBox1.Text, 16); label2.Text = (Convert.ToString(VAM.ReadByte((IntPtr)Jordan))); //label2 принимает значение по адрессу 011D0EA0 не забываем про 0x********! textBox1.Text = label2.Text; Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 2 декабря, 2014 Поделиться Опубликовано 2 декабря, 2014 Я ишу статический указатель, и он меня сбрасывает на страе адреса. ЧТо посоветуете? Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 3 декабря, 2014 Поделиться Опубликовано 3 декабря, 2014 И еще вопрос как эту строку переделать во значение float byte[] bValue_To_Write = BitConverter.GetBytes(100000); //3аписиваем количество. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 3 декабря, 2014 Автор Поделиться Опубликовано 3 декабря, 2014 В 03.12.2014 в 03:53, ivan96222 сказал: И еще вопрос как эту строку переделать во значение float byte[] bValue_To_Write = BitConverter.GetBytes(100000); //3аписиваем количество. byte[]bValue_To_Write = BitConverter.GetBytes((float)1000000); 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 4 декабря, 2014 Поделиться Опубликовано 4 декабря, 2014 В 03.12.2014 в 14:07, ZOCKIR сказал: byte[]bValue_To_Write = BitConverter.GetBytes((float)1000000);спасибо!и еще вопрос вот всё работает, но я поставил значение float 1 типа бесконечный азот как заморозить значение? Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 4 декабря, 2014 Автор Поделиться Опубликовано 4 декабря, 2014 В 04.12.2014 в 01:24, ivan96222 сказал: и еще вопрос вот всё работает, но я поставил значение float 1 типа бесконечный азот как заморозить значение? Через таймер. Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 4 декабря, 2014 Поделиться Опубликовано 4 декабря, 2014 В 04.12.2014 в 04:34, ZOCKIR сказал: Да так и сделал, но указатель статический 5-уровневый со смешениями указал и не работает. Что может быть? Ведь когда я указывал адрес динамический и то работало. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 5 декабря, 2014 Автор Поделиться Опубликовано 5 декабря, 2014 В 04.12.2014 в 15:17, ivan96222 сказал: Да так и сделал, но указатель статический 5-уровневый со смешениями указал и не работает. Что может быть? Ведь когда я указывал адрес динамический и то работало. Покажи код,что не работает, указатель не тот? в СЕ проверял?Больше информации. фото видео и т.д. Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 5 декабря, 2014 Поделиться Опубликовано 5 декабря, 2014 В 05.12.2014 в 11:52, ZOCKIR сказал: Покажи код,что не работает, указатель не тот? в СЕ проверял?код такой int myGame_Address = Addr.ToDec("0077F210"); // Статичный адрес указателяint[] myGame_Offsets = { 0xF0, 0x4, 0x0, 0xD4, 0x80 }; // Офсеты, смещение пишем в виде 0х--вот сохранение таблицы при перезапуске игры всё работает.<Address>"nfsc.exe"+0077F210</Address> <Offsets> <Offset>80</Offset> <Offset>D4</Offset> <Offset>0</Offset> <Offset>4</Offset> <Offset>F0</Offset> </Offsets>Да указатель не тот. Я не понял откуда его взять. Ведь как написал не работает.Вот ссылка таблица сохраненная игра NFS Carbon, но можно открыть текстовым редактором и смотреть смешение и адрес.А про видео у меня интернет тихий... + Мало кто кодит читы на C# Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения