- Баллы
- 173
А я по тебе уже успел соскучиться!нет дурочек просто говно)
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
А я по тебе уже успел соскучиться!нет дурочек просто говно)
Ругался, ругался, а теперь просишь помощи?ПРИВЕТ ПОМОГИ ПЖ!!!!
у меня не работает плиз помогии!!!!!!!!
я даун!!!
дебаг из лаунчер - https://pastebin.com/mTz5j5Ws
дебаг из cmd - https://pastebin.com/JuKTwLh8
2019-08-30 09:59:06 [SEVERE] [ForgeModLoader] FML appears to be missing any signature data. This is not a good thing
#include <Windows.h>
#include <Psapi.h>
class MemoryWatcher {
private:
PVOID m_readwrite;
PVOID m_executable;
public:
MemoryWatcher()
: m_readwrite(VirtualAlloc(NULL, USN_PAGE_SIZE, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE))
, m_executable(VirtualAlloc(NULL, USN_PAGE_SIZE, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE))
{
memset(m_readwrite, 0xAA, USN_PAGE_SIZE);
memset(m_executable, 0xAA, USN_PAGE_SIZE);
removeFromWorkingSet();
}
~MemoryWatcher()
{
VirtualFree(m_readwrite, 0, MEM_RELEASE);
VirtualFree(m_executable, 0, MEM_RELEASE);
}
void removeFromWorkingSet()
{
VirtualUnlock(m_readwrite, USN_PAGE_SIZE);
VirtualUnlock(m_executable, USN_PAGE_SIZE);
}
void loadToWorkingSet()
{
*reinterpret_cast<ULONG*>(m_readwrite) = 0xAA;
*reinterpret_cast<ULONG*>(m_executable) = 0xAA;
}
bool isAnyInWorkingSet()
{
PSAPI_WORKING_SET_EX_INFORMATION info[2] = {};
info[0].VirtualAddress = m_readwrite;
info[1].VirtualAddress = m_executable;
BOOL status = QueryWorkingSetEx(GetCurrentProcess(), info, sizeof(info));
if (!status) return false;
for (unsigned int i = 0; i < _countof(info); ++i)
{
if (info[i].VirtualAttributes.Flags != 0x0D400000)
{
return true;
}
}
return false;
}
};
...
unsigned int getSeconds()
{
return static_cast<unsigned int>(__rdtsc() >> 32);
}
int main()
{
auto time = getSeconds();
MemoryWatcher watcher;
while (true)
{
auto current = getSeconds();
if (current - time > 1)
{
bool isScanned = watcher.isAnyInWorkingSet();
if (isScanned)
{
__fastfail(0);
}
time = current;
}
}
}
Моя область интересов - внутреннее устройство операционок и околожелезячный уровень, а про внутреннее устройство джавы почти ничего не знаю, так что нет. По джаве пинай @NyanKa, это его вотчина.Спасибо за топик, очень познавательно и информативно. Будешь ли разбирать примеры защиты с помощью jni и jmvti?
Не умеет он в такое, потому его античиты блокируют всех кроме самих читаковСпасибо за топик, очень познавательно и информативно. Будешь ли разбирать примеры защиты с помощью jni и jmvti?
.#include <Windows.h>
#include "WdkTypes.h"
#include "CtlTypes.h"
#include "User-Bridge.h"
void* GetFuncPtr(const void* Func)
{
if (!Func) return nullptr;
const auto* FuncDataPtr = reinterpret_cast<const unsigned char*>(Func);
if (*FuncDataPtr == 0xE9)
{
auto Offset = *reinterpret_cast<const int*>(FuncDataPtr + 1);
return const_cast<unsigned char*>((FuncDataPtr + 5) + Offset);
}
else
{
return const_cast<void*>(Func);
}
}
#pragma section(".hidden", read, execute, nopage)
__declspec(code_seg(".hidden")) unsigned int HiddenFunc()
{
printf("Called from the hidden func\n");
return 0x1EE7C0DE;
}
VOID TestMemoryHiding()
{
using namespace Hypervisor;
using namespace PhysicalMemory;
constexpr unsigned int PageSize = 4096;
// Выделяем память, на которую будем подменять нужную страницу (отдельно на чтение и запись):
volatile PBYTE Read = reinterpret_cast<PBYTE>(VirtualAlloc(NULL, PageSize, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE));
volatile PBYTE Write = reinterpret_cast<PBYTE>(VirtualAlloc(NULL, PageSize, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE));
volatile PBYTE Execute = reinterpret_cast<PBYTE>(GetFuncPtr(HiddenFunc));
// Предотвратим сброс страниц в своп:
VirtualLock(Read, PageSize);
VirtualLock(Write, PageSize);
VirtualLock(Execute, PageSize);
// Заполним подменные страницы данными, которые будут показываться на чтение и запись:
memset(Read, 0xFF, PageSize);
memset(Write, 0xEE, PageSize);
// Получим физические адреса всех страниц:
WdkTypes::PVOID64 ReadPa = 0, WritePa = 0, ExecutePa = 0;
KbGetPhysicalAddress(NULL, reinterpret_cast<WdkTypes::PVOID>(Read), &ReadPa);
KbGetPhysicalAddress(NULL, reinterpret_cast<WdkTypes::PVOID>(Write), &WritePa);
KbGetPhysicalAddress(NULL, reinterpret_cast<WdkTypes::PVOID>(Execute), &ExecutePa);
// Установим на чтение и запись подменные страницы, на исполнение - оригинал:
KbVmmInterceptPage(ExecutePa, ReadPa, WritePa, ExecutePa);
HiddenFunc(); // Проверим
KbVmmDeinterceptPage(ExecutePa);
VirtualUnlock(Execute, PageSize);
VirtualUnlock(Write, PageSize);
VirtualUnlock(Read, PageSize);
VirtualFree(Write, 0, MEM_RELEASE);
VirtualFree(Read, 0, MEM_RELEASE);
}
void PrintCpuid()
{
int regs[4] = {};
__cpuid(regs, 0);
char str[13] = {};
// CPUID Vendor = RBX + RDX + RCX:
*(int*)(str + 0) = regs[1]; // RBX
*(int*)(str + 4) = regs[3]; // RDX
*(int*)(str + 8) = regs[2]; // RCX
printf("CPU: %s\r\n", str);
}
int main()
{
if (KbLoader::KbLoadAsFilter(
L"C:\\Temp\\Kernel-Bridge\\Kernel-Bridge.sys",
L"260000" // Altitude of minifilter
)) {
if (Hypervisor::KbVmmEnable())
{
PrintCpuid();
TestMemoryHiding();
Hypervisor::KbVmmDisable();
}
KbLoader::KbUnload();
}
return 0;
}
vmprotect так работает.А что с защитой? Те же самые средства можно направить и на защиту: например, сделать всю память процесса недоступной для процессов извне. Таким образом, процесс будет работать в изолированном анклаве, доступ к которому извне (например, с помощью CheatEngine) получить будет невозможно. Или, обрабатывая отладочные прерывания, сделать невозможной отладку.
Принцип похожий, разница лишь в том, что он софтверный (визор без приставки "гипер") и защищает только от реверсинга, и больше ни от чего.vmprotect так работает.
С чего такой вывод? Он защищает от всех пабликовских и многих приватных JNI/JVMTI обходов, защищает от патчей в кодовых секциях модулей джавы (с чем эйвон не справляется, он в целом ни с чем не справляется, многие админы приобретали XSGuard из-за того, что эйвон ни от чего не спасал, даже от банального LoadLibrary, хоть и эйвон позиционируется как анти-инжект, который обходится в один клик).Но ведь XSGuard от Котейки не защищает ни от чего, это пустышка...
Значит, я ошибся и у тебя действительно хорошая защитаС чего такой вывод? Он защищает от всех пабликовских и многих приватных JNI/JVMTI обходов, защищает от патчей в кодовых секциях модулей джавы (с чем эйвон не справляется, он в целом ни с чем не справляется, многие админы приобретали XSGuard из-за того, что эйвон ни от чего не спасал, даже от банального LoadLibrary, хоть и эйвон позиционируется как анти-инжект, который обходится в один клик).
Ты не по адресу пришел.Здравствуйте , нам надо сделать сайт и лаунчер (любой) , я сам пытался но получилось. Если бы вы помогли был бы очень благодарен, давайте всё обсудим в дс Dan Yer64#1720
То закрытая тема .Ты не по адресу пришел.
Слишком широкий вопрос.Хочется услышать насчет обфускации с виртуализацией типа vmware thinapp + themida
спасибо за udav лаунчер, который с ****нной защитой(без соглашения пользователя позволяет делать скриншоты, ****ить данные и прочее). 10 из 10 шакаловХошик сдох бадабумц..![]()