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

ШАРИК

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

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

  • Посещение

Сообщения, опубликованные ШАРИК

  1. 2 часа назад, keng сказал:

    Ребята, а вы ведь понимаете, что на этой сцене основное мерило - это время? То есть прав (и является автором) тот, кто первым (раньше всех) выложил трейнер или таблицу. Смысл заморачиваться, если все равно это ничего не изменит, а трейнер в любом случае взломают? Вон, тот же Lingon свои трейнеры аж Themida-й обвешивал - толку то, все равно его раскрыли. 

    Ну не скажите . А если приват делать ? То защита обязательна . Но прошаренные так и так вскроют :D

  2. Только что, helldrg сказал:

    Ну тут много вариантов, у меня, к примеру, раньше такая же ошибка была, из-за того, что я указывал не правильный размер модуля, в котором искал сигнатуру(размер модуля был меньше указанного)

    Не , мне наверно надо выделить память под byte* а не под void *... Только как ?

  3. 29 минуты назад, helldrg сказал:

    Посмотри в этот момент чему равняется mbi.RegionSize. Проблема в нем похоже

    С ним всё норм . Но лог компилятора выдаёт std::bad_alloc

  4. Здравствуйте , помогите исправить баг в сканере сигнатур .
    Сканер простой . Из урока Coder'а .
    Раздражает эта строчка

    byte* buffer = new byte[mbi.RegionSize];

    Тем , что из-за неё вылетает чит. Какими другими способами можно выделить и освободить память ?

  5. 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йте (кто может) трейнер для этой игры..

     

    адрес значения меняется

  6. 1 час назад, keng сказал:

    Ок, давай еще раз. Чем они тебе мешают?

    Я работаю с потоками . И я очень часто приходится смотреть в лог , какие потоки , когда создаются и завершаются .
    Но там ещё и те лишние потоки. . Они очень мешают . Неужели нет способа избавиться от этих потоков ?

  7. 2 часа назад, keng сказал:

    @ШАРИК, как я уже писал ранее, hToken нужно закрывать. Я нашел [пример] использования от MS, у них код в общем-то схожий, так что можно просто забить. В любом случае в потоках нет ничего страшного, да и не ты сам их открываешь. Раз винде надо - значит надо.

    Так закрыл hToken (CloseHandle(hToken);)  , всё равно пишет о созданных потоках

  8. Вот скрин
     

    Скрытый текст

    ZLxROOlasFo.jpg

    Вот код:
     

    Скрытый текст
    
    //---------------------------------------------------------------------------
    
    #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

  9. Только что, keng сказал:

    Примерно так, что WinAPI сама по себе довольно редко создает новые потоки, тем более - в контексте вызывающего приложения. Может быть так, что ты вызываешь эту функцию вместе с какой-то другой. Может быть, что вызываешь ее в цикле. Все, что угодно может быть, пока никто не видел код. Т.е. у меня, например, одна вот эта функция не начинает создавать потоки, она отрабатывает и программа завершается.

    Я её вызываю .Создаётся 1 поток и не завершается . И через пару минут создаётся ещё 3 потока . А если не вызываю , то никаких потоков не создаётся .

  10. Только что, keng сказал:

    Если @Dino скажет, что у него с его кодом та же проблема - тогда так и будем думать и искать проблему в его коде. Если нет - то проблема в твоем коде, @ШАРИК.

    Как проблема может быть в моём коде , ели я вызываю только его функцию ? -__- Если я её не вызову , то никаких потоков не будет

  11. 8 часов назад, keng сказал:

    Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! :D

    ахах:D

  12. 9 минут назад, keng сказал:

    Тогда возникает вопрос - зачем их получать?

    Ну мне они нужны . Зачем ? Описано выше . Так что надо получать , делать то что нужно и отключать )
    (быстро отвечаете ;) )

  13. 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;
    }

     

    Может нужно как-то снимать отладочные привилегии ?

  14. Всё работает . Но бывает такое , что последовательность создания и завершения второстепенных потоков меняется .Это нормально ?
    На скрине показано , как должно быть .
    pS3a2rV8vUo.jpg

×
×
  • Создать...

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

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