Soru:
PyInstaller ile "derlenmiş" bir EXE dosyasını nasıl tersine çevirebilirsiniz
Mick
2013-03-22 19:01:31 UTC
view on stackexchange narkive permalink

Yakın zamanda Dave Kennedy tarafından DEF CON 20 [PDF] 'de verilen bir sunumu izledim / okuduktan sonra, PyInstaller a ile derlenen bir Python komut dosyasının nasıl derleneceğini öğrenmek istiyorum >.

Sunumunda, Python'da temel bir ters kabuk komut dosyası oluşturuyor ve bunu PyInstaller ile EXE'ye dönüştürüyor.

Benim sorum, bir PyInstaller'ı nasıl oluşturacağınız. EXE ve tamamen mi yoksa genel olarak mantık / kaynak kodunu orijinal Python komut dizilerinden mi alıyor?

Exe dosyasının kendisini hackleyebildiğinizde bir exe dosyası yapmanın amacı nedir?
PyInstaller ile bir EXE oluşturmanın amacı, onu çalıştırdığınız sistemlerin bir Python yorumlayıcısının veya kullanıyor olabileceğiniz herhangi bir üçüncü taraf modülünün varlığını gerektirmemesidir. Python betiğinizi daha taşınabilir hale getirir, ancak kodu / mantığı tersine mühendisten gizlemez.
Beş yanıtlar:
#1
+30
Ange
2013-03-22 20:39:38 UTC
view on stackexchange narkive permalink
  1. EXE'nin eklenen verilerini ayıklayın (dosyanın sonuna kadar PYZ ile başlayan blok)
  2. PyInstaller'ın arşiv görüntüleyicisi ile istenen dosyaları çıkarın
  3. decompyle .PYCs - Şahsen bunun için Uncompyle2 'yi öneririm.
Daha güncel Uncompyle https://pypi.python.org/pypi/uncompyle6 adresinde
Bu gönderide ayrıca yardım da var: https: //stackoverflow.com/questions/18303122/how-to-decompile-files-from-pyinstaller-pyz-file Dosyaları çıkarmak için bu komut dosyasını kullanabilirsiniz: https: // sourceforge. net / projects / pyinstallerextractor / Version 1.8 pastebin'de de bulunuyor: https: //pastebin.com/fnMw9AuL* Pyinstaller'ın kurulu olduğundan emin olun (`pip install pyinstaller`) Dosyayı çıkardıktan sonra şu aracı da kullanabilirsiniz: https: / /sourceforge.net/projects/easypythondecompiler/files/
1 numarayı nasıl yaparsın?
#2
+10
Remko
2013-03-22 20:05:34 UTC
view on stackexchange narkive permalink

PyInstaller kaynağını yayınlar, böylece çalıştırılabilir dosyadaki python kodunu tam olarak nasıl paketlediğini görürsünüz ...

Daha genel bir yaklaşım, exe'de ilk adım olarak binwalk.

Binwalk'un bu iş için doğru araç olduğundan emin değilim. Size yürütülebilir dosyanın sıkıştırılmış bölümlerini gösterecekti, ancak yalnızca sıkıştırılmış bölümleri aramaya yönlendirmediğiniz sürece çıktının başka birçok yanlış pozitif yanı da olacaktır ... dosya, IMHO.
@mrduclaw:, binwalk ile ilgili deneyimim, içinde ne olabileceğini görmek için bilinmeyen, ikili dosyalar üzerinde yüksek seviye tarama yapmak için iyi bir araç olduğudur. Özellikle ne aradığımızı biliyorsak ancak hangi dosyada olduğunu bilmiyorsak. Binwalk'u eksiksiz bir çözüm olarak önermek istemedim (cevabımı bunun ilk adım olduğunu gösterecek şekilde değiştirdim)
Bilginize, binwalk bağlantısı Haziran 2020 itibarıyla kötü amaçlı web sitesi olarak işaretlenmiş görünüyor.
@Karsun web sitemdeki bir ikili dosyada yanlış pozitif, bunu google'a bildirdim ve şimdi tekrar sorun yok gibi görünüyor (bana bildirdiğiniz için teşekkürler)
#3
+9
Igor Skochinsky
2013-03-22 19:56:44 UTC
view on stackexchange narkive permalink

hack.lu 2012'deki "Dropbox Yazılım Güvenliğinin Kritik Analizi" başlıklı sunumda, benzer bir uygulama kullanan, ancak değiştirilmiş bayt kodu ile özelleştirilmiş Python yorumlayıcısının ek bir bükümü ile Dropbox masaüstü istemcisinin tersine çevrilmesi tartışıldı.

Sunu incelemesi: http://blog.csnc.ch/2012/12/asfws-a-critical-analysis-of-dropbox-software-security/
Slaytların bağlantısı: http://archive.hack.lu/2012/Dropbox%20security.pdf

#4
+8
Glides
2013-03-22 19:22:07 UTC
view on stackexchange narkive permalink

Bu işlem sizi orijinal kaynağa olabildiğince yaklaştırmalıdır.

Temel olarak pyinstaller ve py2exe gibi araçların yaptığı şey, paket kitaplıkları ve bağımlılıkları bir arada kullanmaktır, böylece 'bağımsız' EXE dosyasını çalıştırabilirsiniz bunları indirmek veya bir python yorumlayıcısı ile makineyi hazırlamak zorunda kalmadan.

EXE'yi başlattığınızda, bellekte paketten çıkar. Bu, .pyc dosyalarını (bayt koduna dönüştürülen python kodu) içerir. pyREtic, bunları bellekten almanızı ve kaynağa dönüştürmenizi sağlayan bir araçtır.

https://github.com/MyNameIsMeerkat/pyREtic

pyREtic

Reverse Engineer Gizlenmiş Python Bayt Kodu Bu araç seti, bellekteki bir nesneyi doğrudan disk üzerinden bayt koduna erişmeye gerek kalmadan kaynak koduna geri götürmenize olanak tanır. Bu, diskteki uygulamalar birçok yoldan biriyle karartılmışsa yararlı olabilir.

#5
+4
0xec
2014-02-15 22:23:33 UTC
view on stackexchange narkive permalink

Tüm pyinstaller uygulamaları için tek noktadan çözüm. Pyinstaller tarafından oluşturulan bir exe dosyasına ters mühendislik uygulamak için bu programı kullanın.

https://sourceforge.net/projects/pyinstallerexerebuilder/



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...