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

tirion

Пользователи
  • Постов

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

  • Посещение

Весь контент tirion

  1. Спасибо вам за столь развернутые ответы Не всегда, но ведь он вполне приемлем и суть одна самое главное?Потому что я считаю сначала лучше научиться работать с ассемблерными вставками, потом уже с подобными инструментариями типа AsmJit так что же получается трейнер работает методом CreateRemoteThread? А обычное внедрение библиотечки CreateThread ? Т е какая бы не была инъекция, какие бы методы не использовала, она всегда прыгает на наш код и выпрыгивает обратно? А вот тут я немного встал в ступр... Да, но ты там описал как записать опкоды в байтовом представлении.. А мне интересно как это сделать ассемблерными вставками Просто столкнулся с таким трейнером, который состоит чисто из Exe Файла, но при запуске игры, он внедряет в нее библиотеку, а затем функциями этой библиотеки можно манипулировать непосредственно из трейнера
  2. Всем доброго времени суток. Не знал куда поместить тему, думаю в этом разделе она будет уместна. Заранее прошу прощения за огромное количество текста, и так сократил по максимуму, но наплыв вопросов очень большой.( Абстрактные представления имею, но не могу собрать пазлы в единую картину. И так.. Просмотрел видеокурс уроков Coder'a по написанию трейнера с нуля, видно, парень очень хорошо шарит, но к сожалению не очень доходчиво объясняет, но даже не смотря на это Огромнейшее ему спасибо! что-то новое я для себя все-таки взял. 1) Допустим, зачем использовать такие библиотеки как AsmJit, beaengine, если можно использовать ассемблерные вставки? 2) Какой метод внедрения кода он использовал CreateRemoteThread или CreateThread ? Я так понял, когда мы используем code injection, то он тупо вешается на срабатывание инструкции, это не обязательно должна быть функция, это может быть даже присвоение значения какой-либо переменной. Самое главное, когда эта инструкция сработает, то сработает и наш код(который мы дописали к этой инструкции). Это хорошо, когда нам в качестве новой инструкции нужно записать одни лишь нопы (о чем очень хорошо пояснил keng, за что ему мега респект!). Но как быть, если нам в качестве новых инструкций, нужно записать целый листинг команд? 3) Я так полагаю, для этого нужно использовать ассемблерные вставки и этот метод внедрения называется создание удалённого потока(CreateRemoteThread)? 4) Но для для его использование мы уже будем использовать не инструкции, а непосредственно отлаженные функции? Но что он из себя представляет? Опять-таки из своих рассуждений предположу, что он не использует никаких прыжков, а в свободной области процесса жертвы выделяется память и туда из нашего процесса внедряется производная функция от оригинальной, с измененными значениями переменных(допустим). И когда у игры сработает оригинальная функция, она подменится на ту которую мы внедрили. И вообще что такое ддл инжектор + *.dll. Ддл инжектор получает хендл процесса, а сама ддлка является как раз тем самым кодом, который мы внедряем. От сюда вывод что ддл инжектор + *.dll = трейнер.exe ? то бишь все в одном флаконе Всем спасибо кто дочитал до конца! Рассчитываю на адекватные ответы.
  3. Всем спасибо за ответы, в частности keng'у за подробное разъяснение. Дело в том, что как раз этого и хотелось бы избежать. #include <Windows.h>LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0;}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WNDCLASSEX wc; HWND hwnd; MSG Msg; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; // WndProc - процедура обработки сообщений окна wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(0, IDI_APPLICATION); wc.hCursor = LoadCursor(0, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszMenuName = 0; wc.lpszClassName = "myWindowClass"; wc.hIconSm = LoadIcon(0, IDI_APPLICATION); // Заполняем структуру класса окна RegisterClassEx(&wc); // Регистрируем окно // Создаем окно hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "myWindowClass", "title", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, 0, 0, hInstance, 0); ShowWindow(hwnd, nCmdShow); // Показываем окно на экране UpdateWindow(hwnd); // Обновляем окно while (GetMessage(&Msg, 0, 0, 0) > 0) // Входим в цикл обработки сообщений { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam;}
  4. Доброго времени суток, уважаемые форумчане! Уже второй день бьюсь головой с созданием формы на на С++ vs 2012, до этого момента писал исключительно консольные приложения, но в силу обстоятельств пришлось сделать оконное . И то ,что я увидел, что предлагают на с++ ,меня малость потрясло(на том же делфи такого гемороя не было) прошу направить в нужное русло. Возможно ли создать "строгую" форму, включая все ее элементы без всяких там графических наворочек, лишь бы она могла работать с winapi, при этом сделать это как-то автоматизировано? так как не люблю заниматься графикой, а по большей части смотрю в сторону основного функционала программы
×
×
  • Создать...

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

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