-
Постов
400 -
Зарегистрирован
-
Посещение
-
Победитель дней
26
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные gmz
-
-
http://flatassembler.net/examples/screenshot.zip
годится как теоретический пример... наверно снятие скрина с д3д не особо отличается
-
46 минуты назад, Garik66 сказал:
Я только предполагаю что
так и есть
46 минуты назад, Garik66 сказал:Я тоже этого не знаю, но предполагаю, что влияет, это тоже нужно исследовать, посмотреть, что произойдёт с регистрами FPU при выполнении опкода
xmm это sse, не влияет
-
нихеранепонятно. покажи скрины
-
ps: x32 мне не интересен. можешь переписать, там легко. в SetFilePointer добавишь правильное смещ.
ps2: ажж 3.5кб
ps3: коррекция
ps4: перенес туда ->
- 1
-
5 часов назад, Laziz сказал:
Почему именно fasm или nasm? для отпугивание читателей и автора?
fasm имеет кучу костылей для таких целей, и размер будет 3-4кб х64. nasm для экстремалов
4 часа назад, Razi сказал:А вот это хотелось бы подробнее узнать. Первым делом нужно наверное создать окно, а после этого функцию "open file" чтоб открывать этот файл. Но как это сделать? Но только не через консоль.
такое?
-
10 час назад, Razi сказал:
Что посоветуете?
взять fasm или nasm, создать окно, в окне создать "radio button" на все пушки, добавить название пушек, написать функцию патча файла.. легко xD
-
В 21.03.2016в00:54, fightergf сказал:
есть описание как настроить?
добавь: HookLibraryx64.dll, NtApiCollection.ini, scylla_hide.ini, ScyllaHideX64DBGPlugin.dp64 в папку plugins. запусти. появится меню плагина - поставь галки где PEB, может хватит..
на винде 10 придется запустить NtApiTool что бы сгенерить новые адреса для NtApiCollection.ini
- 1
-
5 часов назад, 2zolo2 сказал:
Пароль: 13124E8A, любой ник с 6 символами.
переведи время на +/- 1 день xD
кейген:
- 1
-
20 часа назад, KIllerrr сказал:
Какая конкретно информация интересует ?
длка загружена в лаунчер игры? тебе надо разобрать все методы детекта мод. кода, потом если возможно заставить сканить фейк модуль. вполне вероятно что любая блокировка античита вызовет детект по телеметрии, типа игра будет работать с хаком но сервак уже в курсе что клиент мод.
18 час назад, AntonVit сказал:В игре Dirt3 (версии xlive), можно встретить нечто подобное.
а в nfsw на старте спец код генерил хеши ~1мб на блоки ехе в памяти. любой патч - детект. также был 2 сканер который юзал код 1 сканера. он запускался на старте гонки и искал паттерны извесных патчей и оригинал код. генерил спец хеш и отправлял его вместе с результатом гонки. в такой ситуации откл античита не возможно также как и костыль методы вроде добавления спец проверок на 2 сканер - каждую обнову следить за этим - бред. также античит когда находил мод кода - генерил спец инфу для разрабов в телеметрии и забавную фразу "Code Patch Detected" в base64. +античит генерил рандом мусор в телеметрии используя EnumProcessModules. он добавлял туда все модули в случайном порядке по одном на Х времени и по одном на финише гонки. следовательно если отключить - мусора нету - значит с клиентом что то не то.
задача решалась хуком в вызове сканера 1, в момент когда сканер находил хук, управление передавалось на мой код который менял базу всех ~1мб блоков на новую (в иниц длки выделял блок по размеру ехе в памяти и копировал туда оригинал), античит дальше работал с фейк модулем, 2 сканер использовал инфу от 1 сканера для генерации своих блоков = 0 детекта
а с EnumProcessModules до инжекта заморозить все потоки игры, заинжектить длку, скрыть в PEB, разморозить.. или юзать свой pe loader..вот такая кулстори xD
-
олька х32, юзай снапшот x64_dbg +scyllahide
-
иии эт все? вся инфа которую удалось достать по работе античита это: "через некоторое время срабатывает проверка" ?
походу 0 шанс на успех -
44 минуты назад, afro228offical сказал:
c++
нене над fasm или nasm, а то на С++ только и будет делать что писать костыли lulz
вместо учебника справка сойдет, она там весьма детальна +качаешь примеры хаков для понимания "организации" кода
-
3 часа назад, GGKillLive сказал:
Мб бывало такое у кого то
находишь место для инжекта:
FF15 02000000 EB08 0000000000000000
пишешь эти байты в локал буффер, вместо 0000000000000000 пишешь новый адрес от alloc, ставишь хук
в новом блоке свой "хак код" заканчиваешь на ret
FF15 < call qword
02000000 < после jmp
EB08 < перепрыг мусора (твоего адреса)
0000000000000000 < твой адрес
ps если место инжекта не идеально - ровняешь EB08 прыг, что бы он перепрыгнул мусор -
6 часов назад, Alex2016 сказал:
Что можно предпринять ?
взять свежий:
https://sourceforge.net/projects/x64dbg/files/snapshots/
добавить плаг:
https://bitbucket.org/NtQuery/scyllahide/downloads
методом тыка подобрать опции
-
11 минуту назад, Garik66 сказал:
Как я понял gmz, тогда уже подобная тема была на форуме недавно
там бонус квест: "все в одну строку"
- 1
-
вместо rcx любой свободный регистр..
mov rcx,returnhere
jmp rcxmov rcx,originalcode
jmp rcxили
call qword[xxxxxxxxxx]
jmp @f
xxxxxxxxxx
@@: -
3 минуты назад, partoftheworlD сказал:
На счёт защиты, можно сделать хук функции LoadLibrary и сделать подмену нужной длл.
не прокатит. только скрытие в PEB поможет (если лоадер писать лень) игруха наверняка юзает EnumProcessModules или K32EnumProcessModules (если не заявлена поддержка хп/виста)
-
1 час назад, KIllerrr сказал:
А что делать с защитой игры?
подсунуть игре фейк модуль? типа пусть себе сканит lol
хмм а для скрытия длки придется стопить все потоки, инжект, скрыть, востановить потоки.. +проверить все детально
-
6 часов назад, Garik66 сказал:
Я пока не сталкивался с таким.
выглядит так: шифро значение может менятся случайно +/- (например на каждый -1 патрон) и каждый перезапуск новое xor значение для шифро\дешифро.
в "Operation Flashpoint Red River" такие методы. если интересно смотри сам xD
-
VirtualAllocEx,-1,0,4096,MEM_COMMIT+MEM_TOP_DOWN,PAGE_READWRITE
-
а где более "интересные" варианты вроде xor + QueryPerformanceCounter?
-
12 часа назад, Garik66 сказал:
как по твоему а в этом примере jmp code будет работать как надо?
0x7FF62E1C0000 < база
0x7FF62E1E0000 < се выдалкак видишь он старается выделить блок как можно ближе (значит будет ок), если у него не получается ближе он юзает qword[xxxxxxxxxxxxxxxx], нО тогда qword перетрет больше инструкций чем ты рассчитал для jmp xxxxxxxx
-
2 часа назад, Garik66 сказал:
А каким боком тот пример относится к нашему случаю?
прямым.
2 часа назад, Garik66 сказал:разве jmp code в этом примере не сработает как нужно?
хз куда он ставит хук lol
там ведь база 0x140000000
-
там уже такое было. и пример наводил.
Проблема рассчёта и прыжка обратно к исходному коду. С++, Visual Studio 2015
in Низкоуровневое программирование
Опубликовано · Изменено пользователем gmz
дааа еще бы dword64 тд тп *facepalm
через call лучше:
DWORD_PTR RemoteCodeBuffer = (DWORD_PTR)VirtualAllocEx((HANDLE)-1,0,4096,MEM_COMMIT,PAGE_EXECUTE_READWRITE); DWORD_PTR aOption1 = 0x004011B4; BYTE callCode[] = {0xE8,0x00,0x00,0x00,0x00,0x90}; BYTE bOption1[] = {0x90,0x90,0x90,0x90,0x90,0xC3}; WriteProcessMemory((HANDLE)-1,(LPVOID)RemoteCodeBuffer,bOption1,sizeof bOption1,0); DWORD_PTR temp = RemoteCodeBuffer-aOption1-5; memcpy(&callCode[1],&temp,sizeof temp); VirtualProtectEx((HANDLE)-1,(LPVOID)aOption1,sizeof callCode,PAGE_EXECUTE_READWRITE,&temp); WriteProcessMemory((HANDLE)-1,(LPVOID)aOption1,callCode,sizeof callCode,0); VirtualProtectEx((HANDLE)-1,(LPVOID)aOption1,sizeof callCode,temp,&temp); RemoteCodeBuffer = RemoteCodeBuffer+sizeof bOption1; BYTE bOption2[] = {0x90,0x90,0x90,0x90,0x90,0xC3}; WriteProcessMemory((HANDLE)-1,(LPVOID)RemoteCodeBuffer,bOption2,sizeof bOption2,0);
также можно весь "хак код" в 1 буффер загнать xD