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

KIllerrr

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

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

  • Посещение

Сообщения, опубликованные KIllerrr

  1. Привет, задание дали на DOS в BAT.
    Пытаюсть реализовать, но чет не айс.
    Само задание:
     

    Спойлер

    Разработать пакетный файл для резервного копирования файлов с определенными расширениями из разных каталогов с возможностью создания резервного каталога, если его нет в системе

    Что я пытался сделать:
     

    Спойлер

    @Echo off 
    md backup1
    robocopy original1  backup1 *.doc *.txt /E
    robocopy original2  backup1 *.doc *.txt /E
    pause

    Архив, батник не имеет в коде не чего криминального.
    ТЫК

  2. 19 часов назад, JustHack сказал:

    А не проще добавить манифест?

    Ты прав. Но Я же не говорил, что только этот способ рабочий. Есть много способов. Я показал один из них.

  3. Всем привет. Решил дополнить уроки от Xipho, где он создает движок для тренера.

    Начнем.

    Так как главный вход в приложение описывается в Main(), от сюда начинается выполнение программы( утрирую).

    Логично запускать проверку именно здесь.
    Подключим библиотеки:

    Спойлер

     

    
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Security.Principal;

     

     

     


    Проверка имеющихся у приложения прав выполняется так:

    Спойлер
    
    WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
        bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
    

     

    В результате выполнения переменная hasAdministrativeRight будет иметь значение true, если программа имеет права администратора, и false, если не имеет.

    Значит, если переменная имеет значение true, нужно выполнять программу, иначе запустить новую копию с правами администратора. Последнее делается так:

    Спойлер
    
     ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
        processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора
        processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска
        try
        {
            Process.Start(processInfo); //пытаемся запустить процесс
        }
        catch (Win32Exception)
        {
            //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7)
        }
        Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)
    

     

    А теперь объединим все, что написано выше.

    Спойлер
    
            static void Main()
            {
                WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
                bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
     
                if (hasAdministrativeRight == false)
                {
                    ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
                    processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора
                    processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска
                    try
                    {
                        Process.Start(processInfo); //пытаемся запустить процесс
                    }
                    catch (Win32Exception)
                    {
                        //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7)
                    }
                    Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)
                }
                else //имеем права администратора, значит, стартуем
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1());
            }

     

    Собственно все.

    P.S. Материал взят с сайта cyberforum.

    • Понравилось 2
  4. 13 часа назад, Xipho сказал:

    SetWindowHookEx палят сразу же античиты. Если делать беспалевный чит - это нужен инжектор с затиранием следов инжекта. У Кодера есть такой урок, где он делал инжектор такой.

    Урок это просто тема?Или у него в ютубе есть ?

  5. 9 часов назад, gmz сказал:

    разве не правильней сначала выяснить как именно он детектит а потом придумать макс сложности облом для античита?

    2 вариант. ну и чем оно отличается от GetModuleHandle+поиск паттрена... сомнительно.

    кст а если хук ендсцене поставить в коде игры (перед переходом в d3d9)? или там проверка на патчкод?

     

    Я так понимаю, можно использовать рендер игры ? 

  6. Привет всем. Многие знают, что я люблю D3D. Так вот сталкнулся с такой проблемой: Я использовал всегда хук Coder а, потому как он подходит как и к Win 7 так и Win10. Но теперь появилась проблема, разрабы пофиксили этот способ, и теперь при использовании данного хука аккаунт банят. Я нашел хук каторый работает методом перебора. Но ОН почему то не работает на Win8 и Win10. 
    Подскажите как мне сделать нормальный хук? Ах да чуть не забыл, хук выполняет работу нахождения адреса устройства отображения, тем самым потом мы можем туда посылать свои запросы на рисовку.

    Вот хук каторый работает везде, но за него банят: 

    Скрытый текст
    
    HRESULT APIENTRY myEndScene(LPDIRECT3DDEVICE9 pDevice)
    {
    	BYTE* CDES = (BYTE*)pEndScene;
    	CDES[0] = CodeFragmentES[0];
    	*((DWORD*)(CDES + 1)) = *((DWORD*)(CodeFragmentES + 1));
    	gDevice = pDevice;// Определяем адрес устройства, и делаем его видемым для всех
    	Start();//Запускаем поток рисовки и других функций взлома.
    	DWORD res = pEndScene(pDevice);
    	CDES[0] = jmpbES[0];
    	*((DWORD*)(CDES + 1)) = *((DWORD*)(jmpbES + 1));
    	return res;
    }
    
    void GetDevice9Methods()
    {
    	HWND hWnd = CreateWindowA("STATIC", "dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0);
    	HMODULE hD3D9 = LoadLibrary("d3d9");
    	DIRECT3DCREATE9 Direct3DCreate9 = (DIRECT3DCREATE9)GetProcAddress(hD3D9, "Direct3DCreate9");
    	IDirect3D9* d3d = Direct3DCreate9(D3D_SDK_VERSION);
    	D3DDISPLAYMODE d3ddm;
    	d3d->GetAdapterDisplayMode(0, &d3ddm);
    	D3DPRESENT_PARAMETERS d3dpp;
    	ZeroMemory(&d3dpp, sizeof(d3dpp));
    	d3dpp.Windowed = 1;
    	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    	d3dpp.BackBufferFormat = d3ddm.Format;
    	IDirect3DDevice9* d3dDevice = 0;
    	d3d->CreateDevice(0, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3dDevice);
    	DWORD* vtablePtr = (DWORD*)(*((DWORD*)d3dDevice));
    	endscene = vtablePtr[42] - (DWORD)hD3D9;
    	reset = vtablePtr[16] - (DWORD)hD3D9;
    	d3dDevice->Release();
    	d3d->Release();
    	FreeLibrary(hD3D9);
    	CloseHandle(hWnd);
    }
    
    void HookDevice9Methods()
    {
    	HMODULE hD3D9 = GetModuleHandle("d3d9.dll");
    	///////////////////////////////////////////////////////////
    	pEndScene = (oEndScene)((DWORD)hD3D9 + endscene);
    	jmpbES[0] = 0xE9;
    	DWORD addr = (DWORD)myEndScene - (DWORD)pEndScene - 5;
    	memcpy(jmpbES + 1, &addr, sizeof(DWORD));
    	memcpy(CodeFragmentES, pEndScene, 5);
    	VirtualProtect(pEndScene, 8, PAGE_EXECUTE_READWRITE, &oldprotectES);
    	memcpy(pEndScene, jmpbES, 5);
    	////////////////////////////////////////////////////////////
    }
    
    HRESULT APIENTRY Hook()
    {
    	GetDevice9Methods();
    	HookDevice9Methods();
    	return 0;
    }

     

    Вот хук каторый не работает на 8 и 10, но за него я так понял не бананят:

    Скрытый текст
    
    PDWORD FindDeviceInterfaceObject(HMODULE hD3D9)
    {
    	PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)hD3D9;
    	if (dosHeader->e_magic == IMAGE_DOS_SIGNATURE)
    	{
    		PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)((DWORD)dosHeader + dosHeader->e_lfanew);
    		if (ntHeaders->Signature == IMAGE_NT_SIGNATURE)
    		{
    			DWORD NumberOfSections = ntHeaders->FileHeader.NumberOfSections;
    			PIMAGE_SECTION_HEADER SectionHeader = (PIMAGE_SECTION_HEADER)((DWORD)dosHeader + dosHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS));
    			for (unsigned int i = 0; i < NumberOfSections; i++)
    			if (strncmp((const char *)SectionHeader[i].Name, ".text", 5) == 0)
    			{
    				DWORD dwFrom = (DWORD)dosHeader + SectionHeader[i].VirtualAddress;
    				DWORD dwTo = dwFrom + SectionHeader[i].Misc.VirtualSize;
    
    				//C7 06 ?? ?? ?? ?? 89 86 ?? ?? ?? ?? 89 86
    				for (unsigned int i = dwFrom; i < dwTo; i++) {
    					if (*(WORD*)(i) == 0x06C7)
    					if (*(WORD*)(i + 2 + 4) == 0x8689)
    					if (*(WORD*)(i + 2 + 4 + 2 + 4) == 0x8689)
    						return *(PDWORD*)(i + 2);
    				}
    			}
    		}
    	}
    	return NULL;
    }
    int HookpDevice(void)
    {
    	PDWORD pdwDeviceInterfaceObject = FindDeviceInterfaceObject(LoadLibraryA("D3D9.dll"));
    	if (pdwDeviceInterfaceObject != NULL)
    	{
    		pEndScene = (oEndScene)Memory->DetourCreate((PBYTE)pdwDeviceInterfaceObject[42], (PBYTE)myEndScene, 5);
    	}
    	return 0;
    }

     

    Предлагайте свои варианты.

     

  7. 24 минуты назад, gmz сказал:

    иии эт все? вся инфа которую удалось достать по работе античита это: "через некоторое время срабатывает проверка" ?
    походу 0 шанс на успех :D

    Какая конкретно информация интересует ?

  8. Привет. 

    Есть адрес mrac.dll+1A89A это MRAC, когда его морозишь то через некоторое время срабатывает проверка, надо написать так, чтобы функция обходила проверку,но так чтобы мрак был заморожен.
    Помогите пожалуйста. 

  9. 15 час назад, Kvazimado сказал:

    Кроме того - техник-программист, это кто?

     

    Программирование в компьютерных системах

     

    Специальность 230115 Программирование в компьютерных системах

     

     

    Квалификация - техник-программист.

    Срок обучения: 3 года 10 месяцев.

     

     

    Область профессиональной деятельности выпускников:

    совокупность методов и средств для разработки, сопровождения и эксплуатации программного обеспечения компьютерных систем.

     

     

    Объектами профессиональной деятельности выпускников являются:

    ·  компьютерные системы;

    ·  автоматизированные системы обработки информации и управления;

    ·  программное обеспечение компьютерных систем (программы, программные комплексы и системы);

    ·  математическое, информационное, техническое, эргономическое, организационное и правовое обеспечение компьютерных систем.

     

     

    Техник-программист готовится к следующим видам деятельности:

    ·        Разработка программных модулей программного обеспечения для компьютерных систем.

    ·        Разработка и администрирование баз данных.

    ·        Участие в интеграции программных модулей.

     

     

    В период обучения кроме специальности «Техник-программист» студенты дополнительно получают рабочие профессии: оператор электронно-вычислительных и вычислительных машин, наладчик  технологического оборудования.

     

  10. 6 минут назад, partoftheworlD сказал:

    Возможно 1 вариант, если интересно программирование и обратная разработка, можно попробовать пробиться на стажировку в антивирусную компанию, участвовать в CTF там могут заметить. Я вот заканчиваю колледж и хочу поступить в универ с обменом студентами с Китаем, там 5 университетов входят в топ лучших по информационным технологиям 

    Я бы в японию поехал или в Германию. )))

     

  11. Всем привет. Ребят помогите мне выбрать между двумя:

    1) Идти в ЖД колледж, потому как у меня работает отец в ЖД, то у меня есть шанс попасть на работу(через знакомых)
    2) Идти в Технический Колледж на "Техник-Программист" потому что я хочу работать программистом, меня тянет к это профессии. Но МАМА говорит, что я не найду работу не где и не кто не возьмёт на работу в Волгограде. 
    И вот я сижу, и не хЕРа не понемаю,ЧТА делать. Вроде хотел стать программистом и писать программы с большой командой, а на ЖД больше возможности попасть. 
    Подскажите, что как, может кто знает??? 

     А то я смотрю большие дяди здесь сидят, не то, что я 15 летний.

  12. 13 минуты назад, Xipho сказал:

    Как только у меня появится свободное время и идея для урока ) Не раньше. но и не позже )

    И еще чуть-чуть оффтопа - наконец-то в ближайшее время придет нормальный интернет в наш коттеджный поселок (не без моей помощи), так что я смогу делать лайв-стримы. Так вот. Вопрос, собственно, такой - стоит делать лайв-стримы, или ну их нафиг? )

    Думаю нужно договриваться со всеми, что бы интереснее было.А то друг у всех работа/учеба 

  13. 4 часа назад, Xipho сказал:

    Я же писал - ищи урок Кодера, он там со скрытием в PEB делает инжектор.

    Спасибо огромное за помощь. Уже проверил инжектор через CE:

    1 Попытался своим инжектором, результат тот, что я нашел в списке "Подгруженные длл"

    2 Попытался инжектором от Codera, результат тот, что я не смог найти свою длл.
    Проверял раза 3-4. Все гуд. 
    Осталось сделать обход защиты на блокировку. Но это пока подождёт. 
    P.s. Вопрос не по теме: Я все понимаю, но когда выйдет новый урок по теме "Делаем тренер от А до Я". 

  14. 50 минут назад, gmz сказал:

    не прокатит. только скрытие в PEB поможет (если лоадер писать лень) игруха наверняка юзает EnumProcessModules или K32EnumProcessModules (если не заявлена поддержка хп/виста)

    там приложение какоето палит "Мрак"

     

  15. 2 часа назад, Xipho сказал:

    Где-то на форуме есть урок от Кодера по созданию инжектора, использующего системные вызовы, которые ни одна игра не перехватывает. Можно попробовать такой же сделать, вдруг получится.

    А что делать с защитой игры? 

  16. Привет.

    Есть такая проблема, есть защита на изменение значений в памяти игры. Но мы её обошли.

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

     

    Прошу подсказать как можно обойти внутнри игровую защиту использовая AsM и обойти защиту на инжектирование. Внутри игровую защиту мы обходим, так что тупо не даём измениться значению адреса. Но нужно как то усовершенствовать, помогите. 

    З.ы.ьПишу с телефона )

  17. 7 минут назад, Garik66 сказал:

    partoftheworlDDison - вы оба лентяи :Pнапример я вообще ничего не знаю об этих видах читов. 

    Расписали бы, какой из читов и что делает.

    Для меня это звучит примерно так - ХЗ ХакСтены - ^_^ ( где ХЗ - хрен его знает).

    Dison по ссылке, что ты дал, не один из скринов не раскрывается так что тоже не понятно, что и что делает. 

    Вал хак работает, не так уж и сложно. Находим текстуру окрышиваем в цвет, если за стеной то тот участок стены делаем прозрачным и опять же окрашиваем в цвет текстуру игрока. 
    P.S. Пользоваться нужно помойму DrawPrimitive 

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

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

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