.exe Uzantılı Python Dosyalarının Kodlarını Çıkarmak

errias

Üye
7 Şub 2022
51
11
Yaklaşık %30'unu chatGPT'den alıp %70ini kendim yazdığım pyinstaller ile .py'den .exe'ye dönüştürülmüş dosyaların kaynak kodlarını bulmayı, yani bi nevi otomatik şekilde tersine mühendislik yapan bir pythom scripti.
kod sayesinde sadece .exe dosyasının yolunu girerek dosyanın kaynak kodlarına ulaşabilirsiniz.
.exe dosyasını parçalamak için pyinstxtractor kullandım, parçalarına ayrılan .exe dosyasının içinden ana .pyc uzantılı dosyayı bulup decode etmek için ise pydumpck kullandım.
Script;
Kod:
#burda da kullanacagim kutuphaneleri import ediyorum.
import os
import shutil
import time
import fnmatch
import requests
import subprocess
os.system("pip install requests")
os.system("pip install pydumpck")
username = os.getlogin() #burda bilgisayar kullanicisinin username'sini appdata yolunu bulurken kullanmak uzere aliyorum...

#program yolu girildiginde programi alan fonksiyon..
def get_program_name(file_path):
    program_name = os.path.basename(file_path)
    return program_name

#benzer dosyalari bulan fonksiyon bunu pyinstxtractorun cikti verdigi dosyayi bulmak icin kullaniyorum..
def find_and_move_similar_files(base_path, keyword, target_path):
    for root, dirs, files in os.walk(base_path):
        for file_name in files:
            if fnmatch.fnmatch(file_name, f"*{keyword}*"):
                source_file = os.path.join(root, file_name)
                source_file_extension = os.path.splitext(file_name)[1]
                if source_file_extension in (".pyc"):
                    target_file = os.path.join(target_path, file_name)
                    shutil.move(source_file, target_file)
                    print(f"{source_file} dosyası {target_file} yoluna taşındı.")

#burda pyintxtractor indiriyom bu kadardi tsk...
file_url = "https://raw.githubusercontent.com/extremecoders-re/pyinstxtractor/master/pyinstxtractor.py" #burda pyinstxtractoru sahibinden indiriyorum yani indirme baglantisini giriyorum
save_path = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\pyins.py" #burdada indirecegim pyinstxtractorun kaydedilme yolunu giriyorum...
response = requests.get(file_url) #burda indirme islemi gerceklesiyor..
with open(save_path, 'wb') as file:#burdada kaydolma islemi...
    file.write(response.content)

pyinstxtractor_yolu = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #pyinstxtractorun yolunu veriyorum burada kullabilsin diye...
os.chdir(pyinstxtractor_yolu) #scriptin calistigi yolu degistiriyorum burda cmd'deki "cd" komudu gibi dusunulebilir..
veri = input("exe dosyasinin yolunu giriniz: ") #burda exe dosyasinin yolunu aliyorum kullanicimdan
program_isim = get_program_name(veri) #yukaridaki yazdigim fonksiyonu cagiriyorum burda program ismini almak icin...
os.system(f"python pyins.py {veri}") #burda pyinxtractora exe dosyamizi veriyoruz "veri" adli degiskenimizin icinde .exe dosyamizin adi var...
time.sleep(3)
#burda sey yapiliyo .exe uzantisini siliyo slice islemi yapiliyo yani sonra dosyayi bulmasi icin keyword'e .exe uzantisiz bir dosya adi veriyor bu kadardi tsk...
base_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+"_extracted" #bu dosyayi asagidaki konuma tasiyo buda
target_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #buda tasidigi konum tsk...
program_isim=program_isim[:-4]
keyword = program_isim
find_and_move_similar_files(base_path, keyword, target_path)

#try catch icinde de pydumpck kullanarak pyintxtractorun vermis oldugu .pyc uzantili dosyayi .py uzantısına geri ceviriyorum yani decode islemi birazcik...
try:
    cmd = "C:\\Users\\"+username+"\\AppData\\Local\\Programs\\Python\\Python310\\Lib\\site-packages\\pydumpck\\pyc_checker\\lib_pycdc\\pycdc.exe"
    pyc_file = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+".pyc"
    #subprocess.run fonksiyonuna dosya yollarini verip calistiriyorum burda olan seyin cmd kodu acikca su;
    #python pycdc.exe ehehe.pyc
    #tamamen bu bu kadardi..
    subprocess.run([cmd, pyc_file], check=True)
    input("")
except:
    #hata yakaliyo bu arkadas
    input("")
eğer hata alırsanız dm'den ulaşabilirsiniz.
!!!DİKKAT!!! SADECE .PY DOSYASINDAN .EXE'YE DONUSTURULMUS DOSYALAR ICIN GECERLIDIR .NET GIBI FRAMEWORKLERDE ISE YARAMAZ.
 

reachi

Yeni üye
9 May 2021
13
0
Yaklaşık %30'unu chatGPT'den alıp %70ini kendim yazdığım pyinstaller ile .py'den .exe'ye dönüştürülmüş dosyaların kaynak kodlarını bulmayı, yani bi nevi otomatik şekilde tersine mühendislik yapan bir pythom scripti.
kod sayesinde sadece .exe dosyasının yolunu girerek dosyanın kaynak kodlarına ulaşabilirsiniz.
.exe dosyasını parçalamak için pyinstxtractor kullandım, parçalarına ayrılan .exe dosyasının içinden ana .pyc uzantılı dosyayı bulup decode etmek için ise pydumpck kullandım.
Script;
Kod:
#burda da kullanacagim kutuphaneleri import ediyorum.
import os
import shutil
import time
import fnmatch
import requests
import subprocess
os.system("pip install requests")
os.system("pip install pydumpck")
username = os.getlogin() #burda bilgisayar kullanicisinin username'sini appdata yolunu bulurken kullanmak uzere aliyorum...

#program yolu girildiginde programi alan fonksiyon..
def get_program_name(file_path):
    program_name = os.path.basename(file_path)
    return program_name

#benzer dosyalari bulan fonksiyon bunu pyinstxtractorun cikti verdigi dosyayi bulmak icin kullaniyorum..
def find_and_move_similar_files(base_path, keyword, target_path):
    for root, dirs, files in os.walk(base_path):
        for file_name in files:
            if fnmatch.fnmatch(file_name, f"*{keyword}*"):
                source_file = os.path.join(root, file_name)
                source_file_extension = os.path.splitext(file_name)[1]
                if source_file_extension in (".pyc"):
                    target_file = os.path.join(target_path, file_name)
                    shutil.move(source_file, target_file)
                    print(f"{source_file} dosyası {target_file} yoluna taşındı.")

#burda pyintxtractor indiriyom bu kadardi tsk...
file_url = "https://raw.githubusercontent.com/extremecoders-re/pyinstxtractor/master/pyinstxtractor.py" #burda pyinstxtractoru sahibinden indiriyorum yani indirme baglantisini giriyorum
save_path = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\pyins.py" #burdada indirecegim pyinstxtractorun kaydedilme yolunu giriyorum...
response = requests.get(file_url) #burda indirme islemi gerceklesiyor..
with open(save_path, 'wb') as file:#burdada kaydolma islemi...
    file.write(response.content)

pyinstxtractor_yolu = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #pyinstxtractorun yolunu veriyorum burada kullabilsin diye...
os.chdir(pyinstxtractor_yolu) #scriptin calistigi yolu degistiriyorum burda cmd'deki "cd" komudu gibi dusunulebilir..
veri = input("exe dosyasinin yolunu giriniz: ") #burda exe dosyasinin yolunu aliyorum kullanicimdan
program_isim = get_program_name(veri) #yukaridaki yazdigim fonksiyonu cagiriyorum burda program ismini almak icin...
os.system(f"python pyins.py {veri}") #burda pyinxtractora exe dosyamizi veriyoruz "veri" adli degiskenimizin icinde .exe dosyamizin adi var...
time.sleep(3)
#burda sey yapiliyo .exe uzantisini siliyo slice islemi yapiliyo yani sonra dosyayi bulmasi icin keyword'e .exe uzantisiz bir dosya adi veriyor bu kadardi tsk...
base_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+"_extracted" #bu dosyayi asagidaki konuma tasiyo buda
target_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #buda tasidigi konum tsk...
program_isim=program_isim[:-4]
keyword = program_isim
find_and_move_similar_files(base_path, keyword, target_path)

#try catch icinde de pydumpck kullanarak pyintxtractorun vermis oldugu .pyc uzantili dosyayi .py uzantısına geri ceviriyorum yani decode islemi birazcik...
try:
    cmd = "C:\\Users\\"+username+"\\AppData\\Local\\Programs\\Python\\Python310\\Lib\\site-packages\\pydumpck\\pyc_checker\\lib_pycdc\\pycdc.exe"
    pyc_file = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+".pyc"
    #subprocess.run fonksiyonuna dosya yollarini verip calistiriyorum burda olan seyin cmd kodu acikca su;
    #python pycdc.exe ehehe.pyc
    #tamamen bu bu kadardi..
    subprocess.run([cmd, pyc_file], check=True)
    input("")
except:
    #hata yakaliyo bu arkadas
    input("")
eğer hata alırsanız dm'den ulaşabilirsiniz.
!!!DİKKAT!!! SADECE .PY DOSYASINDAN .EXE'YE DONUSTURULMUS DOSYALAR ICIN GECERLIDIR .NET GIBI FRAMEWORKLERDE ISE YARAMAZ.
knk bundan korunmak için ne yapmam lazım kodları nasıl gizlerim
 

errias

Üye
7 Şub 2022
51
11
yanlış anlama ama burada sen argüman komutu çalıştırtmışsın asıl işlemi yapan aşağıdaki link;
(ben de sıfırdan py extractor kodlamışsın sandım...)

bu python dosyasını sadece pyc dosyalarına ayırıyor kodu direkt vermiyor, kodu direkt vermesi için ana python dosyasını bulup decode etmeniz gerekiyor ve birazcık uzun sürebiliyor. kendim kullanmak için hazırlamıştım zaten scripti, burda da paylaşmak istedim belirttim zaten yukarıda kullandığım şeyleri

knk bundan korunmak için ne yapmam lazım kodları nasıl gizlerim
yazdığın kodu pyarmor ile encrypt edip sonrasında pyinstaller'a sokabilirsin
 

Blueteamforse

Asistan Moderatör
17 Ağu 2023
180
79
Moderasyon
Yaklaşık %30'unu chatGPT'den alıp %70ini kendim yazdığım pyinstaller ile .py'den .exe'ye dönüştürülmüş dosyaların kaynak kodlarını bulmayı, yani bi nevi otomatik şekilde tersine mühendislik yapan bir pythom scripti.
kod sayesinde sadece .exe dosyasının yolunu girerek dosyanın kaynak kodlarına ulaşabilirsiniz.
.exe dosyasını parçalamak için pyinstxtractor kullandım, parçalarına ayrılan .exe dosyasının içinden ana .pyc uzantılı dosyayı bulup decode etmek için ise pydumpck kullandım.
Script;
Kod:
#burda da kullanacagim kutuphaneleri import ediyorum.
import os
import shutil
import time
import fnmatch
import requests
import subprocess
os.system("pip install requests")
os.system("pip install pydumpck")
username = os.getlogin() #burda bilgisayar kullanicisinin username'sini appdata yolunu bulurken kullanmak uzere aliyorum...

#program yolu girildiginde programi alan fonksiyon..
def get_program_name(file_path):
    program_name = os.path.basename(file_path)
    return program_name

#benzer dosyalari bulan fonksiyon bunu pyinstxtractorun cikti verdigi dosyayi bulmak icin kullaniyorum..
def find_and_move_similar_files(base_path, keyword, target_path):
    for root, dirs, files in os.walk(base_path):
        for file_name in files:
            if fnmatch.fnmatch(file_name, f"*{keyword}*"):
                source_file = os.path.join(root, file_name)
                source_file_extension = os.path.splitext(file_name)[1]
                if source_file_extension in (".pyc"):
                    target_file = os.path.join(target_path, file_name)
                    shutil.move(source_file, target_file)
                    print(f"{source_file} dosyası {target_file} yoluna taşındı.")

#burda pyintxtractor indiriyom bu kadardi tsk...
file_url = "https://raw.githubusercontent.com/extremecoders-re/pyinstxtractor/master/pyinstxtractor.py" #burda pyinstxtractoru sahibinden indiriyorum yani indirme baglantisini giriyorum
save_path = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\pyins.py" #burdada indirecegim pyinstxtractorun kaydedilme yolunu giriyorum...
response = requests.get(file_url) #burda indirme islemi gerceklesiyor..
with open(save_path, 'wb') as file:#burdada kaydolma islemi...
    file.write(response.content)

pyinstxtractor_yolu = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #pyinstxtractorun yolunu veriyorum burada kullabilsin diye...
os.chdir(pyinstxtractor_yolu) #scriptin calistigi yolu degistiriyorum burda cmd'deki "cd" komudu gibi dusunulebilir..
veri = input("exe dosyasinin yolunu giriniz: ") #burda exe dosyasinin yolunu aliyorum kullanicimdan
program_isim = get_program_name(veri) #yukaridaki yazdigim fonksiyonu cagiriyorum burda program ismini almak icin...
os.system(f"python pyins.py {veri}") #burda pyinxtractora exe dosyamizi veriyoruz "veri" adli degiskenimizin icinde .exe dosyamizin adi var...
time.sleep(3)
#burda sey yapiliyo .exe uzantisini siliyo slice islemi yapiliyo yani sonra dosyayi bulmasi icin keyword'e .exe uzantisiz bir dosya adi veriyor bu kadardi tsk...
base_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+"_extracted" #bu dosyayi asagidaki konuma tasiyo buda
target_path = r"C:\\Users\\"+username+"\\AppData\\Local\\Temp" #buda tasidigi konum tsk...
program_isim=program_isim[:-4]
keyword = program_isim
find_and_move_similar_files(base_path, keyword, target_path)

#try catch icinde de pydumpck kullanarak pyintxtractorun vermis oldugu .pyc uzantili dosyayi .py uzantısına geri ceviriyorum yani decode islemi birazcik...
try:
    cmd = "C:\\Users\\"+username+"\\AppData\\Local\\Programs\\Python\\Python310\\Lib\\site-packages\\pydumpck\\pyc_checker\\lib_pycdc\\pycdc.exe"
    pyc_file = "C:\\Users\\"+username+"\\AppData\\Local\\Temp\\"+program_isim+".pyc"
    #subprocess.run fonksiyonuna dosya yollarini verip calistiriyorum burda olan seyin cmd kodu acikca su;
    #python pycdc.exe ehehe.pyc
    #tamamen bu bu kadardi..
    subprocess.run([cmd, pyc_file], check=True)
    input("")
except:
    #hata yakaliyo bu arkadas
    input("")
eğer hata alırsanız dm'den ulaşabilirsiniz.
!!!DİKKAT!!! SADECE .PY DOSYASINDAN .EXE'YE DONUSTURULMUS DOSYALAR ICIN GECERLIDIR .NET GIBI FRAMEWORKLERDE ISE YARAMAZ.
Basit bir şekilde yazılabilir hatta yapay zekaya ile yazabilirsin boş boş konu açmayalım lütfen............
:)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.