Open Source Python String Execution Hook - Exec

miarey

Diamond Üye
Katılım
14 Tem 2023
Mesajlar
287
Beğeniler
55

Python dilinde "PyRun_StringFlags_Type" fonksiyonunu hooklayarak çalıştırılan execleri çekebilirsiniz.​

(Not: Bazı custom obfuscatorlar genellikle derlenmiş kodlarını çalıştırmak için exec kullanırlar. İşinize yarayabilir)​

C++:
#include <windows.h>
#include <detours.h>
#include <iostream>
#include <fstream>

typedef int (*PyRun_StringFlags_Type)(const char* str, int start, void* globals, void* locals, void* flags);
PyRun_StringFlags_Type digerpyrunstringflags = nullptr;

int WINAPI kaltakpyrunstringflags(const char* str, int start, void* globals, void* locals, void* flags)
{
    if (str != nullptr)
    {
        std::cout << "exec:\n";
        std::cout << "-----\n";
        std::cout << str << "\n";
        std::cout << "-----\n\n";
    }

    return digerpyrunstringflags(str, start, globals, locals, flags);
}

BOOL APIENTRY dllmain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
{
    switch (reason)
    {
    case DLL_PROCESS_ATTACH:
    {
        HMODULE pythondllkardesim = GetModuleHandle(L"python311.dll");
        if (pythondllkardesim == NULL) {
            return FALSE;
        }

        digerpyrunstringflags = (PyRun_StringFlags_Type)GetProcAddress(pythondllkardesim, "PyRun_StringFlags");
        if (digerpyrunstringflags == NULL) {
            return FALSE;
        }

        DetourTransactionBegin();
        DetourUpdateThread(GetCurrentThread());
        DetourAttach(&(PVOID&)digerpyrunstringflags, kaltakpyrunstringflags);

        if (DetourTransactionCommit() != NO_ERROR) {
            return FALSE;
        }
        break;
    }

    case DLL_PROCESS_DETACH:
    {
        DetourTransactionBegin();
        DetourUpdateThread(GetCurrentThread());
        DetourDetach(&(PVOID&)digerpyrunstringflags, kaltakpyrunstringflags);
        DetourTransactionCommit();
        break;
    }
    }
    return TRUE;
}
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
exec("asdkjasklşafjka")i print("asdkjasklşafjka") yapinca cıkıyo zaten her sey ne ise yariyo tam olarak anlayamadim
 
exec("asdkjasklşafjka")i print("asdkjasklşafjka") yapinca cıkıyo zaten her sey ne ise yariyo tam olarak anlayamadim
Eğer exec komutunu görüyorsan, zaten o kod gizlenmemiştir veya obfuscator diye anılmaz. Bu kodu gerçekten iyi gizlenmiş ise ve işine yarayacaksa, kullanabilirsin. Kullanmak zorunda değilsin, işine yarayan kullanır.
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
Eğer exec komutunu görüyorsan, zaten o kod gizlenmemiştir veya obfuscator diye anılmaz. Bu kodu gerçekten iyi gizlenmiş ise ve işine yarayacaksa, kullanabilirsin. Kullanmak zorunda değilsin, işine yarayan kullanır.
Kimsenin işine yaramayacağından dolayı yazdım zaten
 
Merhaba, örnek olarak bir kullanım senaryosu gosterebillirmisiniz acaba daha iyi kavramam için kodun amacını?
 
exec olayının sadece x.py içinde bulunabildiğini sanan arkadaşlar yararsız olduğunu düşünmüş, daha önce aynı şeyi yapmak benim de aklıma gelmişti.

Yararlı konu..
 
Güzel konu, geliştirilebilir
1-Detour yerine minhook, polyhook2 veya safetyhook kullanabilirsin
2-VMP için antihook bypass eklenebilir
3-stryi ekrana loglamak yerine bir metin belgesine yazdırabilirsin
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt