-
Постов
220 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные ШАРИК
-
-
Здравствуйте . Как плагин sig maker для OllyDbg определяет динамические (?) или статические (x) байты ?
-
2 часа назад, keng сказал:
Ребята, а вы ведь понимаете, что на этой сцене основное мерило - это время? То есть прав (и является автором) тот, кто первым (раньше всех) выложил трейнер или таблицу. Смысл заморачиваться, если все равно это ничего не изменит, а трейнер в любом случае взломают? Вон, тот же Lingon свои трейнеры аж Themida-й обвешивал - толку то, все равно его раскрыли.
Ну не скажите . А если приват делать ? То защита обязательна . Но прошаренные так и так вскроют
-
Только что, helldrg сказал:
Ну тут много вариантов, у меня, к примеру, раньше такая же ошибка была, из-за того, что я указывал не правильный размер модуля, в котором искал сигнатуру(размер модуля был меньше указанного)
Не , мне наверно надо выделить память под byte* а не под void *... Только как ?
-
Спасибо . Но теперь почему-то на DataCompare ругается
Скрытый текст -
29 минуты назад, helldrg сказал:
Посмотри в этот момент чему равняется mbi.RegionSize. Проблема в нем похоже
С ним всё норм . Но лог компилятора выдаёт std::bad_alloc
-
Здравствуйте , помогите исправить баг в сканере сигнатур .
Сканер простой . Из урока Coder'а .
Раздражает эта строчкаbyte* buffer = new byte[mbi.RegionSize];
Тем , что из-за неё вылетает чит. Какими другими способами можно выделить и освободить память ?
-
14 минуты назад, KOYM сказал:
Дa не ребят, я делaл тaк.
Зaшёл в мультиплеер, включил чит энджин, потрaтил брони чуть чуть, через флоaт нaшёл кол-во брони, взломaл, потом сохрaнил это, и склaцaл из этого трейнер, всё рaботaло, включaлось/выключaлось. Но после перезaходa в игру, ничего не рaботaет, и это нaверное связaнно с тем что, id процессa рaзные. Помогите кто может
Или создaйте (кто может) трейнер для этой игры..адрес значения меняется
-
GMZ , спасибо , ты всё решил
-
1 час назад, keng сказал:
Ок, давай еще раз. Чем они тебе мешают?
Я работаю с потоками . И я очень часто приходится смотреть в лог , какие потоки , когда создаются и завершаются .
Но там ещё и те лишние потоки. . Они очень мешают . Неужели нет способа избавиться от этих потоков ? -
2 часа назад, keng сказал:
Так закрыл hToken (CloseHandle(hToken);) , всё равно пишет о созданных потоках
-
Вот скрин
Скрытый текстВот код:
Скрытый текст//--------------------------------------------------------------------------- #pragma hdrstop #include <iostream> #include <tchar.h> //--------------------------------------------------------------------------- #include <Windows.h> #pragma argsused bool GetPriv() { TOKEN_PRIVILEGES Priv, PrivOld; DWORD cbPriv = sizeof(PrivOld); HANDLE hToken; DWORD dwError; // получаем токен текущего потока if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, FALSE, &hToken)) { if (GetLastError() != ERROR_NO_TOKEN) return FALSE; // используем токен процесса, если потоку не назначено // никакого токена if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken)) return FALSE; } Priv.PrivilegeCount = 1; Priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Priv.Privileges[0].Luid); // попробуем включить привилегию if (!AdjustTokenPrivileges(hToken, FALSE, &Priv, sizeof(Priv), &PrivOld, &cbPriv)) { dwError = GetLastError(); CloseHandle(hToken); return SetLastError(dwError), FALSE; } return TRUE; } int _tmain(int argc, _TCHAR* argv[]) { bool a =GetPriv(); system("pause"); return 0; } //---------------------------------------------------------------------------
Потоки создаются из-за OpenThreadToken
-
Только что, keng сказал:
Примерно так, что WinAPI сама по себе довольно редко создает новые потоки, тем более - в контексте вызывающего приложения. Может быть так, что ты вызываешь эту функцию вместе с какой-то другой. Может быть, что вызываешь ее в цикле. Все, что угодно может быть, пока никто не видел код. Т.е. у меня, например, одна вот эта функция не начинает создавать потоки, она отрабатывает и программа завершается.
Я её вызываю .Создаётся 1 поток и не завершается . И через пару минут создаётся ещё 3 потока . А если не вызываю , то никаких потоков не создаётся .
-
Только что, keng сказал:
Как проблема может быть в моём коде , ели я вызываю только его функцию ? -__- Если я её не вызову , то никаких потоков не будет
-
7 минут назад, keng сказал:
Тогда, видимо, я все еще не понимаю в чем проблема. Потоки создаются неконтролируемо?
да
-
8 часов назад, keng сказал:
Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар!
ахах
-
9 минут назад, keng сказал:
Тогда возникает вопрос - зачем их получать?
Ну мне они нужны . Зачем ? Описано выше . Так что надо получать , делать то что нужно и отключать )
(быстро отвечаете ) -
1 час назад, keng сказал:
Не вижу проблемы, если потоки создает ОС, а не ты сам. HANDLE токена ты закрываешь, память не течет, так что все в порядке. Не могу навскидку вспомнить, как точно работает механизм токенов и создаются ли там в процессе потоки, но точно уверен, что создаются - как минмиум, чтобы вытащить текущую сессию пользователя.
PS: В конце функции нужно закрыть hToken, как я понимаю. Или ты закрываешь его дальше?
Я использую готовый код , который скинул Dino
Скрытый текстBOOL GetPriv() { TOKEN_PRIVILEGES Priv, PrivOld; DWORD cbPriv = sizeof(PrivOld); HANDLE hToken; DWORD dwError; // получаем токен текущего потока if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, FALSE, &hToken)) { if (GetLastError() != ERROR_NO_TOKEN) return FALSE; // используем токен процесса, если потоку не назначено // никакого токена if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken)) return FALSE; } Priv.PrivilegeCount = 1; Priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Priv.Privileges[0].Luid); // попробуем включить привилегию if (!AdjustTokenPrivileges(hToken, FALSE, &Priv, sizeof(Priv), &PrivOld, &cbPriv)) { dwError = GetLastError(); CloseHandle(hToken); return SetLastError(dwError), FALSE; } return TRUE; }
Может нужно как-то снимать отладочные привилегии ?
-
7 минут назад, keng сказал:
А что должно происходить?
Ну смотрите , вызвал функцию . Создался поток . И потом мне в лог стодии выводится информация о том , что создались ещё какие-то потоки .
-
Здравствуйте. У меня такая ситуация , после вызова этой функции начинают создаваться потоки . Как это исправить ?
-
Яж ананимус. Какой уж там город ? XDD
-
Юзайте C++ Builder Удобно , никаких зависимостей , красивый дизайн , маленький вес (можно упаковать с помощью UPX)
-
18 час назад, Garik66 сказал:
Не просто. А за....
я понял
-
Эмм... Так просто в разработчики попасть ? Или я чего-то не догоняю ?
-
Всё работает . Но бывает такое , что последовательность создания и завершения второстепенных потоков меняется .Это нормально ?
На скрине показано , как должно быть .
динамический байт или статический?
in Низкоуровневое программирование
Опубликовано
а есть исходный код или пример?