Перейти к содержанию

Excelike

Стажёры
  • Постов

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены
  1. Типа, вот такого: 72 D9 EB ?? C4 F0 ?? ?? ?? 38? Если да, то на C# тоже так можно сделать, но в ольке (OllyDBG), как ты наверное знаешь сигнатура и маска выдаются отдельно друг от друга, поэтому так и реализовываем
  2. Ах да, сигнатура тоже поменьше стала (Это так, на заметку) Не знаю, в хоткее используются переменные, поэтому привык к ним А так да, легче
  3. Работает, но немного с другой маской, т.к НОП равен одному байту. Ни в коем случае, искренняя благодарность
  4. Здравствуйте. Возникла проблема. Хочу сделать что то вроде само-обновляемого трейнера. Но почему то после поиска сигнатур (При включении/выключении чекбокса) функция включается, а вот назад никак не хочет выключаться. Приведу код: Для переключения функций используется статическая булева переменная: static bool func1 = false; Код поиска сигнатуры, и записи в в память: private void checkBox1_CheckedChanged(object sender, EventArgs e) { SigScan _sigScan = new SigScan(seap, new IntPtr(0x401000), 0x10bc000); byte[] buffer2 = new byte[] { 0x75, 0x05, 0xC6, 0x44, 0x24, 0x0B, 0x01, 0x85, 0xC0, 0x0F, 0x94, 0xC1, 0x83, 0xF8, 0x01, 0x0F, 0x94, 0x44, 0x24, 0x0C, 0x83, 0xF8, 0x02, 0x0F, 0x94, 0x44, 0x24, 0x0D, 0x80, 0xBE, 0xE9, 0x0C, 0x00, 0x00, 0x00, 0x53, 0x74, 0x13, 0xD9, 0xEE }; IntPtr num = _sigScan.FindPattern(buffer2, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0); if (func1 == false)//если переменная [BYTE] равна 0(true - 1, false - 0) { byte[] buffer = new byte[] { 0x90, 0x90 };//байт, который записывается,если переменная [BYTE] равна 0, то есть выключена функция. memory.WriteByteArray((IntPtr)num, buffer);//записываем в адрес байты. checkBox1.Checked = true; func1 = true; } else//Иначе { byte[] buffer = new byte[] { 0x75, 0x05 };//байт, который записывается, если переменная [BYTE] равна 1, то есть включена функция. memory.WriteByteArray((IntPtr)num, buffer);//записываем в адрес байты. checkBox1.Checked = false; func1 = false; } Всё никак не могу разобраться, в чём проблема то?
  5. Вообщем ребят, теперь возникла другая проблема (Предыдущую решил на C++). Я пишу трейнер для игры (Тапками не кидать), но т.к все адреса там динамические, то мне нужно реализовать сканер сигнатур. Объясню поподробнее, что мне именно нужно сделать. 1.После запуска программы, выполнить поиск определённой сигнатуры в процессе "game.exe" (К примеру). 2.Если сигнатура найдена, то узнать адрес и записать его (Адрес) в переменную "int num1", т.е: без сканера сигнатур, данные переменные используются для указания адрес(а/ов), например: int num = 0x123456. Но мне же нужно записывать полученный адрес динамично, программно (После поиска сигнатуры, и получения самого адреса). Если же нужная сигнатура не найдена, соответственно и не получен адрес, то появляется MessageBox с текстом "Сигнатуры не найдены!". Приведу код включения/выключения функции (в трейнере), выполняются они в checkbox-ах: private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (func1 == false)//если переменная [BYTE] равна 0(true - 1, false - 0) { int num1 = 0x123456;//адрес. byte[] buffer = new byte[] { 0x90, 0x90 };//байт, который записывается,если переменная [BYTE] равна 0, то есть выключена функция. memory.WriteByteArray((IntPtr)num1, buffer);//записываем в адрес байты. checkBox1.Checked = true; func1 = true; } else//Иначе { int num1 = 0x123456;//опять же адрес. byte[] buffer = new byte[] { 0x11, 0x11 };//байт, который записывается, если переменная [BYTE] равна 1, то есть включена функция. memory.WriteByteArray((IntPtr)num1, buffer);//записываем в адрес байты. checkBox1.Checked = false; func1 = false; } func = переменная, которая используется для включения/выключения функции. int num = 0x123456 = Переменная, которая используется для хранения адреса. Вот собственно и всё. Выручайте ребят
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.