uz
Feedback
Codex

Codex

Kanalga Telegram’da oβ€˜tish

Content channel : - App Development - Python , C++, kotlin , Golang, Java , JS , Rust This Channel Doesn't Promote Any Illegal Activities It's Just For Fun Educational Purposes Owner : @Qwanwin From : Indonesia

Ko'proq ko'rsatish
1 515
Obunachilar
+224 soatlar
+117 kun
+1730 kun
Postlar arxiv
Codex
1 515
Build use AndroidStudio

Codex
1 515
photo content

Codex
1 515
#include <EGL/egl.h>
#include <GLES2/gl2.h>
#include <android/log.h>
#include <dlfcn.h>
#include <atomic>

#define LOG_TAG "Qwanwin"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,  LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)

static std::atomic<int> gW{0}, gH{0};

using PFN_eglSwapBuffers = EGLBoolean (*)(EGLDisplay, EGLSurface);

static PFN_eglSwapBuffers orig_eglSwapBuffers = nullptr;
static thread_local bool tls_in_hook = false;


extern "C" EGLBoolean _eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
    if (tls_in_hook) {
        return orig_eglSwapBuffers ? orig_eglSwapBuffers(dpy, surface) : EGL_FALSE;
    }
    tls_in_hook = true;

    if (dpy != EGL_NO_DISPLAY && surface != EGL_NO_SURFACE) {
        EGLint w = 0, h = 0;
        if (eglQuerySurface(dpy, surface, EGL_WIDTH, &w) == EGL_TRUE &&
            eglQuerySurface(dpy, surface, EGL_HEIGHT, &h) == EGL_TRUE &&
            w > 0 && h > 0) {
            gW.store((int)w, std::memory_order_relaxed);
            gH.store((int)h, std::memory_order_relaxed);
        } else {
            // fallback
            GLint vp[4] = {0,0,0,0};
            glGetIntegerv(GL_VIEWPORT, vp); // [x,y,w,h]
            if (vp[2] > 0 && vp[3] > 0) {
                gW.store(vp[2], std::memory_order_relaxed);
                gH.store(vp[3], std::memory_order_relaxed);
            }
        }
    }

    EGLBoolean ret = orig_eglSwapBuffers ? orig_eglSwapBuffers(dpy, surface) : EGL_FALSE;
    tls_in_hook = false;
    return ret;
}

static void* Qwanwin_eglSwapBuffers() {
    
    void* sym = dlsym(RTLD_NEXT, "eglSwapBuffers");
    if (sym) return sym;
    
    void* h = dlopen("libEGL.so", RTLD_NOW);
    if (!h) return nullptr;
    sym = dlsym(h, "eglSwapBuffers");
    return sym;
}

extern "C" void QwanEglSwapHook_Easy() {
    if (orig_eglSwapBuffers) return; 
    void* target = Qwanwin_eglSwapBuffers();
    if (!target) {
        LOGE("Failed to eglSwapBuffers");
        return;
    }

    
    if (Tools::Hook((void*)target, (void*)_eglSwapBuffers, (void**)&orig_eglSwapBuffers)) {
        LOGI("Hooked eglSwapBuffers successfully");
    } else {
        LOGE("Hook failed");
    }
}

/*
extern "C" int eglhook_get_w() { return gW.load(std::memory_order_relaxed); }
extern "C" int eglhook_get_h() { return gH.load(std::memory_order_relaxed); }*/
Auto set-up
__attribute__((constructor))
static void on_load() { QwanEglSwapHook_Easy(); }
EGL Hook Credit @codex4444

Codex
1 515
Sold out thanks πŸ˜‡

Codex
1 515
https://www.playbook.com/s/qwanwinkill/65bTgPsGR8XDMm2bDwzEsfFB kill signature 64BIT 4.0 => Without Crashing => Without blank => Without Crashing in game => Support Java and Imgui => Libanort edited Author: @Qwanwin

Codex
1 515
KILL SIGNATURE !!!
Anonymous voting

Codex
1 515
I’ve developed my own custom SRC β€” now supporting 7 different ESP types in a single build. βœ… 3 ESP using EGL βœ… 1 ESP using ProcessEvent βœ… 1 ESP using PostRender βœ… 1 ESP using VTableRender βœ… All fully controllable through one system... Buy @Qwanwin

Codex
1 515
GL 64 bit 4.0

Codex
1 515
Two 😭
Two 😭

Codex
1 515
Need active admin

Codex
1 515
Please don't use branded words here. If you still want me to actively upload game 😊

Codex
1 515
https://www.playbook.com/s/qwanwinkill/V8nnTBUKFjrUUCd4kZK76cR4 Safe kill signature 32BIT => Without Crashing => Without blank => Without Crashing in game => Support Java and Imgui Author: @Qwanwin

Codex
1 515
+1
readme.c

Codex
1 515
UE4 engine SDK Generator 😊
UE4 engine SDK Generator 😊

Codex
1 515
+3
ida-pro_90sp1_x64win.exe462.45 MB

Codex
1 515
+1
Tools plugin ida Speeds up the process of labeling functions during reverse without having to rename them manually one by one for each binary version. For usage instructions, refer to the readme.txt file. For non-Indonesian language, please use a translator.☺️ Author: @Qwanwin https://t.me/codex4444

Codex
1 515
Full source and tutorial set-up ! Enjoy πŸ™‚