Jet PYc-20 - التاريخ

Jet PYc-20 - التاريخ

طائرة نفاثة

ما ينبثق ؛ تدفق يتدفق.

(PYc-20: dp. 386؛ 1. 160 '؛ b. 24'6 "؛ s. 15 k.؛ a. 13")

تم إطلاق Jet (PYc-20) ، المعروف سابقًا باسم Thalia ، في عام 1930 بواسطة Defoe Boat & Motor Works ، Bay City ، Mich. حصلت عليها البحرية في 27 يناير 1942 وتحويلها إلى يخت دورية ساحلي ؛ وبتفويض في 4 أبريل 1942 ، الملازم دي سي بول في القيادة.

بعد التجهيز ، غادرت جيت ميامي في 17 أبريل للعمل مع أسطول المحيط الهادئ ، ووصلت سان دييغو في 9 مايو. بعد الإصلاحات في سان دييغو ، وصلت بيرل هاربور في 29 يونيو لأداء مهمة دورية. واصلت جيت مهامها الدورية حتى 3 يونيو 1943 عندما بدأت سلسلة من رحلات الحراسة بين هاواي وجزيرة ميدواي. خلال يناير 1944 عملت كسفينة محطة أرصاد جوية قبل استئناف مهام الدوريات والمرافقة. وصلت جزيرة ميدواي في 6 يناير 1945 وبقيت في المحطة حتى 7 مايو عندما عادت إلى بيرل هاربور. شاركت Jet مع Thresher (SS-200) في تمرين غواصة في أواخر مايو ثم بدأت العمليات المحلية خارج هاواي. غادرت بيرل هاربور في 11 يوليو ، ووصلت إلى سان فرانسيسكو في 25 ، وخرجت من الخدمة هناك في 27 أغسطس 1945. وعادت إلى اللجنة البحرية في 20 سبتمبر 1947.


الطائرة الخاصة التي طارت سرا جريتشن ويتمير إلى فلوريدا تحجب تاريخ الرحلة

1،076 dicus63 / جيتي إيماجيس

منعت الشركة التي تملك الطائرة الخاصة التي نقلت سرا حاكم ولاية ميشيغان جريتشين ويتمير (ديمقراطية) إلى فلوريدا في مارس (آذار) محاولات البحث في سجل رحلاتها.

قامت شركة Air Eagle ، ذات المسؤولية المحدودة ، المملوكة لثلاثة رجال أعمال في ديترويت ، بنقل ويتمر إلى ولاية صن شاين ستيت في مارس ، والتي انطلقت شهرًا من الأسئلة والأجوبة التي تفتقر إلى الوضوح والصدق.

يتم تتبع طائرة Air Eagle، LLC & # 8217s - مثل جميع الطائرات الأخرى - من خلال موقع ويب عام يسمى FlightAware ، والذي يتتبع تحركات الطائرات في جميع أنحاء البلاد. كانت هناك رحلة Whitmer & # 8217s في 12 مارس من لانسينغ إلى بالم بيتش ، فلوريدا ، والعودة في 15 مارس ، تم تأكيدها. يقدم موقع الويب 30 يومًا من التاريخ مجانًا وبيانات إضافية مقابل رسوم.

يوم الأربعاء ، كان تاريخ الطائرة & # 8217s متاحًا للشراء. تقرأ صفحة الشراء هذا الصباح ، & # 8220 هذه الطائرة (N62AE) غير متاحة للتتبع العام لكل طلب من المالك / المشغل ، & # 8221 تمنع القدرة على عرض المزيد من سجلها وربما تطابق سجل نشاطها مع Whitmer & # 8217s يسافر. الآن ، لا يوجد سجل رحلة متاح.

سألت Breitbart News مكتب Whitmer & # 8217s عما إذا كانت قد طارت على متن الطائرة في أي وقت آخر ، أو الطائرة الخاصة لأي مالك آخر من المحتمل أن يسعى للتأثير عليها ولم يردوا.

كما رفض مكتب Whitmer & # 8217s شرح كيف سافرت إلى حفل تنصيب الرئيس جو بايدن في يناير.

تكهن عضو لوبي سابق لـ Breitbart News بأن إحدى العائلات التي تملك الطائرة - Morouns و Cottons و Nicholsons - ربما وافقت على السماح لـ Whitmer باستخدام الطائرة مقابل مقابلة مع الحاكم خلال الرحلة التي تزيد عن ساعتين. الى فلوريدا.

في الواقع ، إذا سمح مالكو الطائرة للحاكم باستخدام طائرتهم لأن هذا الترتيب منحهم ساعات من الوقت وجهًا لوجه معها للضغط من أجل مصالحهم ، فنحن لا نعرف ما الذي قد يطلبونه منها وما إذا كانت قد منحته. ومن غير المعروف أيضًا من - إن وجد - من بين مالكي الطائرة الذين سافروا مع ويتمير إلى فلوريدا أو عدد المرات الأخرى التي ربما استخدمت فيها طائرتهم في الماضي خلال فترة ولايتها في المنصب.

كان ويتمر في حالة من الجمود منذ أسابيع بشأن التفاصيل المحيطة بالرحلة السرية. قال مكتبها في البداية إنها رحلة & # 8220 شخصية & # 8221 للاطمئنان على والدها & # 8220 الإبحار & # 8221 وأنها سافرت & # 8220 على نفقتها الخاصة. & # 8221

تم التشكيك في الطبيعة & # 8220 الشخصية & # 8221 للرحلة بعد أن تم الكشف عن أن منظمة غير ربحية 501 (c) (4) تم إنشاؤها لتمويل انتقال Whitmer & # 8217s 2019 ، ودفعت 27،521 دولارًا للرحلة ، وسدد Whitmer للصندوق 855 دولارًا. لمقعدها. ومع ذلك ، وفقًا لقواعد مصلحة الضرائب الأمريكية ، يمكن لـ 501 (c) (4) تمويل الأنشطة المتعلقة فقط بغرض المؤسسة غير الربحية. وأكد ويتمر أن الرحلة كانت & # 8220 شخصية & # 8221 ومتصلة بالعائلة.

كان هناك مزيد من الجدل حول حقيقة أن المتحدث باسم الحاكم صرح بأن الطائرة 501 (c) (4) "استأجرت" الرحلة. أثار هذا الادعاء أسئلة مفادها أن شركة Air Eagle، LLC ربما انتهكت اتفاقها مع إدارة الطيران الفيدرالية (FAA) لأن الشركة غير معتمدة للعمل كخدمة تأجير.

كما أنه لا يزال من غير الواضح بالضبط طبيعة حالة الطوارئ الطبية العاجلة لوالدها والتي تطلبت من الحاكم غير الملقح في ذلك الوقت السفر إلى فلوريدا في وقت كانت فيه حالات الإصابة بفيروس كورونا تتزايد في ولايتها وبعد أن حذرت ميشيجاندرز بعدم السفر إلى فلوريدا. لقضاء عطلة الربيع. بعد أسابيع قليلة من رحلتها ، شوهدت ويتمر & # 8217s & # 8220ailing & # 8221 الأب يتسوق في لانسينغ ويقود سيارته بمفرده في سيارته Tesla ، حسبما ذكرت Great Lakes News.

شعر الحاكم بقلق شديد مع تفاقم الأسئلة.

قال ويتمر لصحفي 9 & amp10 News في حدث حول الطرق: "لقد قلت كل ما سأقوله عن رحلتي للتحقق من والدي". ”لقد كانت رحلة سريعة. لقد كان سببًا عائليًا مهمًا للقيام بذلك. وليس لدي ما أضيفه ".

"لقد حضرت عندما كنت بحاجة. قال ويتمر الأسبوع الماضي "لقد قمت بالكثير من الطهي والتنظيف".

قالت: "عندما تكون حاكم ولاية ميشيغان ، تكون دائمًا على مدار الساعة ، لكن هذا لا يعني أنك لست أيضًا ابنة تظهر عندما يحتاجها أحد أفراد العائلة".

كايل أولسون مراسل في بريتبارت نيوز. وهو أيضًا مضيف برنامج "The Kyle Olson Show" الذي يتم عرضه على محطات إذاعية في ميشيغان أيام السبت - يمكنك تنزيله بالكامل حلقات البودكاست. اتبعه بارلر.


Jet PYc-20 - التاريخ

2 المساهمين

المستخدمون الذين ساهموا في هذا الملف

& quot & quot & quot
PyInstaller Extractor v2.0 (يدعم pyinstaller 4.3 ، 4.2 ، 4.1 ، 4.0 ، 3.6 ، 3.5 ، 3.4 ، 3.3 ، 3.2 ، 3.1 ، 3.0 ، 2.1 ، 2.0)
المؤلف: Extreme Coders
البريد الإلكتروني: Extremeecoders (at) hotmail (dot) com
الويب: https://0xec.blogspot.com
التاريخ: 26-آذار -2020
عنوان URL: https://github.com/extremecoders-re/pyinstxtractor
لأية اقتراحات ، اترك تعليقا على
https://forum.tuts4you.com/topic/34455-pyinstaller-extractor/
يستخرج هذا البرنامج النصي ملفًا تنفيذيًا تم إنشاؤه بواسطة pyinstaller.
ليس هناك حاجة لتثبيت Pyinstaller. النص يحتوي على كل شيء.
للحصول على أفضل النتائج ، يوصى بتشغيل هذا البرنامج النصي بتنسيق
نفس إصدار python الذي تم استخدامه لإنشاء الملف القابل للتنفيذ.
هذا فقط لمنع أخطاء إلغاء التنظيم (إن وجدت) أثناء
استخراج أرشيف PYZ.
الاستخدام: ما عليك سوى نسخ هذا البرنامج النصي إلى الدليل حيث يوجد ملف exe الخاص بك
وتشغيل البرنامج النصي مع اسم ملف exe كمعامل
C: مسار t o exe & gtpython pyinstxtractor.py & ltfilename & gt
$ / path / to / exe / python pyinstxtractor.py & ltfilename & gt
مُرخصة بموجب رخصة جنو العمومية العامة (GPL) v3.
أنت حر في تعديل هذا المصدر.
التغيير
================================================
الإصدار 1.1 (28 يناير 2014)
-------------------------------------------------
- الإصدار الأول
- يدعم فقط pyinstaller 2.0
الإصدار 1.2 (12 سبتمبر 2015)
-------------------------------------------------
- تمت إضافة دعم لبرنامج pyinstaller 2.1 و 3.0 dev
- تنظيف الكود
- أصبح النص الآن أكثر تفصيلاً
- قابل للتنفيذ مستخرج داخل دليل فرعي مخصص
(دعم pyinstaller 3.0 dev تجريبي)
الإصدار 1.3 (12 ديسمبر 2015)
-------------------------------------------------
- دعم إضافي لبرنامج pyinstaller 3.0 النهائي
- البرنامج النصي متوافق مع كل من python 2.x و amp 3.x (بفضل Moritz Kroll @ Avira Operations GmbH & amp Co. KG)
الإصدار 1.4 (19 يناير 2016)
-------------------------------------------------
- إصلاح الخلل عند كتابة ملفات pyc & gt = الإصدار 3.3 (بفضل Daniello Alto: https://github.com/Djamana)
الإصدار 1.5 (1 مارس 2016)
-------------------------------------------------
- دعم إضافي لبرنامج pyinstaller 3.1 (بفضل Berwyn Hoyt للإبلاغ)
الإصدار 1.6 (5 سبتمبر 2016)
-------------------------------------------------
- إضافة دعم لبرنامج pyinstaller 3.2
- سيستخدم المستخرج اسمًا عشوائيًا أثناء استخراج الملفات غير المسماة.
- بالنسبة لأرشيفات pyz المشفرة ، سيتم تفريغ المحتويات كما هي. في السابق ، كانت الأداة تفشل.
الإصدار 1.7 (13 مارس 2017)
-------------------------------------------------
- جعل البرنامج النصي متوافقًا مع python 2.6 (بفضل روس للإبلاغ)
الإصدار 1.8 (28 أبريل 2017)
-------------------------------------------------
- دعم الدلائل الفرعية في ملفات .pyz (بفضل Moritz Kroll @ Avira Operations GmbH & amp Co. KG)
الإصدار 1.9 (29 نوفمبر 2017)
-------------------------------------------------
- تمت إضافة دعم لبرنامج pyinstaller 3.3
- اعرض البرامج النصية التي يتم تشغيلها عند الإدخال (بفضل Michael Gillespie @ malwarehunterteam لطلب الميزة)
الإصدار 2.0 (26 مارس 2020)
-------------------------------------------------
- انتقل المشروع إلى جيثب
- يدعم برنامج pyinstaller 3.6
- تمت إضافة دعم لـ Python 3.7 و 3.8
- تم الآن إصلاح رأس كل pyc & # 39s المستخرجة تلقائيًا
& quot & quot & quot
من __future__ استيراد print_function
استيراد نظام التشغيل
استيراد هيكل
مارشال الاستيراد
استيراد zlib
استيراد النظم
من uuid استيراد uuid4 كاسم فريد
تم إهمال # imp في Python3 لصالح importlib
إذا كان النظام. version_info. رئيسي == 3:
من importlib. استخدام الاستيراد MAGIC_NUMBER
pyc_magic = MAGIC_NUMBER
آخر :
استيراد عفريت
pyc_magic = عفريت. get_magic ()
فئة CTOC
def __init__ (self، position، cmprsdDataSize، uncmprsdDataSize، cmprsFlag، typeCmprsData، name):
الذات . الموقف = الموقف
الذات . cmprsdDataSize = cmprsdDataSize
الذات . uncmprsdDataSize = uncmprsdDataSize
الذات . cmprsFlag = cmprsFlag
الذات . typeCmprsData = typeCmprsData
الذات . الاسم = الاسم
فئة PyInstArchive:
PYINST20_COOKIE_SIZE = 24 # لـ pyinstaller 2.0
PYINST21_COOKIE_SIZE = 24 + 64 # لـ pyinstaller 2.1+
MAGIC = b & # 39MEI 014 013 012 013 016 & # 39 # الرقم السحري الذي يحدد pyinstaller
def __init__ (ذاتي ، مسار):
الذات . filePath = المسار
مواطنه مفتوحه (ذاتي):
محاولة :
الذات . fPtr = فتح (مسار ملف ذاتي ، & # 39rb & # 39)
الذات . حجم الملف = نظام التشغيل. stat (self. filePath). st_size
إلا :
طباعة (& # 39 [!] خطأ: تعذر فتح تنسيق <0> & # 39. (مسار الملف الذاتي))
عودة كاذبة
عودة صحيح
مواطنه قريبه (ذاتي):
محاولة :
الذات . fPtr. أغلق ()
إلا :
يمر
def check ملف (ذاتي):
طباعة (& # 39 [+] معالجة تنسيق <0> & # 39. (مسار الملف الذاتي))
# تحقق مما إذا كان أرشيف 2.0
الذات . fPtr. البحث (ذاتي. حجم الملف - ذاتي. PYINST20_COOKIE_SIZE ، نظام التشغيل. SEEK_SET)
magicFromFile = self. fPtr. قراءة (لين (النفس ماجيك))
إذا كان magicFromFile == self. السحر:
الذات . pyinstVer = 20 # pyinstaller 2.0
طباعة (& # 39 [+] إصدار Pyinstaller: 2.0 & # 39)
عودة صحيح
# تحقق من وجود pyinstaller 2.1+ قبل الإنقاذ
الذات . fPtr. البحث (ذاتي. حجم الملف - ذاتي. PYINST21_COOKIE_SIZE ، نظام التشغيل. SEEK_SET)
magicFromFile = self. fPtr. قراءة (لين (النفس ماجيك))
إذا كان magicFromFile == self. السحر:
طباعة (& # 39 [+] إصدار Pyinstaller: 2.1 + & # 39)
الذات . pyinstVer = 21 # pyinstaller 2.1+
عودة صحيح
print (& # 39 [!] خطأ: إصدار pyinstaller غير مدعوم أو ليس أرشيف pyinstaller & # 39)
عودة كاذبة
def getCArchiveInfo (ذاتي):
محاولة :
إذا كان النفس. pyinstVer == 20:
الذات . fPtr. البحث (ذاتي. حجم الملف - ذاتي. PYINST20_COOKIE_SIZE ، نظام التشغيل. SEEK_SET)
# قراءة ملف تعريف الارتباط CArchive
(السحر ، lengthofPackage ، toc ، tocLen ، self. pyver) =
هيكل. فك (& # 39! 8siiii & # 39، self. fPtr. قراءة (self. PYINST20_COOKIE_SIZE))
أليف النفس. pyinstVer == 21:
الذات . fPtr. البحث (ذاتي. حجم الملف - ذاتي. PYINST21_COOKIE_SIZE ، نظام التشغيل. SEEK_SET)
# قراءة ملف تعريف الارتباط CArchive
(ماجيك ، lengthofPackage ، toc ، tocLen ، self. pyver ، pylibname) =
هيكل. فك (& # 39! 8siiii64s & # 39، self. fPtr. قراءة (self. PYINST21_COOKIE_SIZE))
إلا :
print (& # 39 [!] خطأ: الملف ليس أرشيف pyinstaller & # 39)
عودة كاذبة
print (& # 39 [+] إصدار Python: تنسيق <0> & # 39. (self. pyver))
# التراكب هي البيانات الملحقة في نهاية PE
الذات . overlaySize = lengthofPackage
الذات . overlayPos = النفس. حجم الملف - النفس. الحجم
الذات . tableOfContentsPos = self. overlayPos + toc
الذات . tableOfContentsSize = tocLen
print (& # 39 [+] طول الحزمة: تنسيق <0> بايت & # 39. (self. overlaySize))
عودة صحيح
def parseTOC (ذاتي):
# اذهب الي جدول المحتويات
الذات . fPtr. البحث (self. tableOfContentsPos، OS. SEEK_SET)
الذات . tocList = []
parsedLen = 0
# تحليل جدول المحتويات
أثناء التحليل tableOfContents الحجم:
(entrySize،) = Struct. فك (& # 39! i & # 39، self. fPtr. قراءة (4))
nameLen = الهيكل. calcsize (& # 39! iiiiBc & # 39)
(entryPos، cmprsdDataSize، uncmprsdDataSize، cmprsFlag، typeCmprsData، name) =
هيكل. أفرغ (
& # 39! iii قبل الميلاد <0> ق & # 39. تنسيق (حجم الإدخال - nameLen) ،
الذات . fPtr. قراءة (حجم الإدخال - 4))
الاسم = الاسم. فك (& # 39utf-8 & # 39). rstrip (& # 39 0 & # 39)
إذا كان len (الاسم) == 0:
الاسم = str (uniquename ())
print (& # 39 [!] تحذير: تم العثور على ملف غير مسمى في CArchive. استخدام اسم عشوائي <0> & # 39. تنسيق (الاسم))
الذات . tocList. ألحق (
دخول CTOC (
الذات . overlayPos + نقاط الدخول ،
cmprsdDataSize ،
uncmprsdDataSize ،
cmprsFlag ،
اكتب بيانات cmprs ،
اسم
))
parsedLen + = حجم الإدخال
print (& # 39 [+] تم العثور على ملفات <0> بتنسيق CArchive & # 39. (len (self. tocList)))
def _writeRawData (self، filepath، data):
نانومتر = مسار الملف. استبدال (& # 39 & # 39، مسار نظام التشغيل. منفصلة). استبدال (& # 39 / & # 39، مسار نظام التشغيل. منفصلة). استبدال (& # 39 .. & # 39 ، & # 39 __ & # 39)
nmDir = نظام التشغيل طريق . اسم الدليل (نانومتر)
إذا كان nmDir! = & # 39 & # 39 وليس نظام التشغيل. طريق . موجود (nmDir): # تحقق مما إذا كان المسار موجودًا ، أنشئ إذا لم يكن كذلك
نظام التشغيل. makedirs (nmDir)
مع open (nm ، & # 39wb & # 39) كـ f:
F . الكتابة (البيانات)
def extract الملفات (ذاتي):
طباعة (& # 39 [+] بداية الاستخراج. يرجى الاستعداد & # 39)
extractionDir = نظام التشغيل. طريق . انضم (نظام التشغيل getcwd () ، مسار نظام التشغيل. الاسم الأساسي (مسار الملف الذاتي) + & # 39_extracted & # 39)
إن لم يكن نظام التشغيل. طريق . موجود (extractionDir):
نظام التشغيل. مكدير (استخراج دير)
نظام التشغيل. chdir (استخراج دير)
للدخول في النفس. قائمة tocList:
basePath = نظام التشغيل طريق . اسم الدليل (إدخال. اسم)
إذا كان basePath! = & # 39 & # 39:
# تحقق مما إذا كان المسار موجودًا ، قم بإنشاء إذا لم يكن كذلك
إن لم يكن نظام التشغيل. طريق . موجود (basePath):
نظام التشغيل. makedirs (basePath)
الذات . fPtr. تسعى (دخول. موقف ، نظام التشغيل SEEK_SET)
البيانات = الذات. fPtr. قراءة (إدخال. cmprsdDataSize)
إذا كان الدخول. cmprsFlag == 1:
البيانات = zlib. فك ضغط (البيانات)
# قد تتلاعب البرامج الضارة بالحجم غير المضغوط
# التعليق خارج التأكيد في مثل هذه الحالة
تأكيد لين (البيانات) == الإدخال. uncmprsdDataSize # فحص صحة
إذا كان الدخول. typeCmprsData == b & # 39s & # 39:
# s - & gt ARCHIVE_ITEM_PYSOURCE
# من المتوقع أن تكون نقطة الدخول نصوص بايثون
طباعة (& # 39 [+] نقطة إدخال محتملة: <0> تنسيق pyc & # 39 (إدخال. اسم))
الذات . _writePyc (إدخال. name + & # 39.pyc & # 39، data)
دخول إليف. typeCmprsData == b & # 39M & # 39 أو الإدخال. typeCmprsData == b & # 39m & # 39:
# M - & gt ARCHIVE_ITEM_PYPACKAGE
# م - & GT ARCHIVE_ITEM_PYMODULE
# الحزم والوحدات هي ملفات pyc مع رأسها & # 39s سليمة
الذات . _writeRawData (إدخال. name + & # 39.pyc & # 39، data)
آخر :
الذات . _writeRawData (إدخال. اسم ، بيانات)
إذا كان الدخول. typeCmprsData == b & # 39z & # 39 أو الإدخال. typeCmprsData == b & # 39Z & # 39:
الذات . _extractPyz (اسم الإدخال)
def _writePyc (self، filename، data):
بـ open (filename، & # 39wb & # 39) كـ pycFile:
pycFile. اكتب (pyc_magic) # pyc magic
إذا كان النفس. pyver & gt = 37: # PEP 552 - pycs حتمية
pycFile. اكتب (b & # 39 0 & # 39 * 4) # Bitfield
pycFile. اكتب (b & # 39 0 & # 39 * 8) # (الطابع الزمني + الحجم) || تجزئة
آخر :
pycFile. اكتب (b & # 39 0 & # 39 * 4) # الطابع الزمني
إذا كان النفس. بيفر & gt = 33:
pycFile. اكتب (b & # 39 0 & # 39 * 4) # تمت إضافة معلمة الحجم في Python 3.3
pycFile. الكتابة (البيانات)
def _extractPyz (الذات ، الاسم):
dirName = الاسم + & # 39_extracted & # 39
# قم بإنشاء دليل لمحتويات pyz
إن لم يكن نظام التشغيل. طريق . موجود (dirName):
نظام التشغيل. مكدير (dirName)
مع (name، & # 39rb & # 39) مفتوح مثل f:
pyzMagic = و. قراءة (4)
تأكيد pyzMagic == b & # 39PYZ 0 & # 39 # فحص صحة
رأس pycHeader = f. قراءة (4) # قيمة سحرية لبايثون
# تخطي استخراج PYZ إذا لم يكن يعمل تحت نفس إصدار بيثون
إذا pyc_magic! = pycHeader:
print (& # 39 [!] تحذير: هذا البرنامج النصي يعمل في إصدار Python مختلف عن الإصدار المستخدم لبناء الملف القابل للتنفيذ. & # 39)
print (& # 39 [!] الرجاء تشغيل هذا البرنامج النصي في Python <0> لمنع أخطاء الاستخراج أثناء إلغاء التنسيق & # 39. (self. pyver))
print (& # 39 [!] تخطي استخراج pyz & # 39)
إرجاع
(tocPosition،) = البنية. تفريغ (& # 39! i & # 39 ، ص. قراءة (4))
F . تسعى (tocPosition، os. SEEK_SET)
محاولة :
توك = مارشال. تحميل (و)
إلا :
print (& # 39 [!] Unmarshalling FAILED. لا يمكن استخراج <0>. استخراج الملفات المتبقية. & # 39. تنسيق (الاسم))
إرجاع
print (& # 39 [+] تم العثور على ملفات <0> في أرشيف PYZ & # 39. تنسيق (len (toc)))
# من pyinstaller 3.1+ toc هي قائمة من المجموعات
إذا اكتب (toc) == list:
توك = ديكت (توك)
للمفتاح في toc. مفاتيح ():
(ispkg، pos، length) = toc [مفتاح]
F . البحث (نقاط البيع ، نظام التشغيل SEEK_SET)
اسم الملف = مفتاح
محاولة :
# بالنسبة إلى Python & gt 3.3 ، بعض المفاتيح عبارة عن كائن بايت ، وبعضها عبارة عن كائن str
اسم الملف = اسم الملف. فك (& # 39utf-8 & # 39)
إلا :
يمر
# منع الكتابة خارج dirName
اسم الملف = اسم الملف. استبدل (& # 39 .. & # 39، & # 39 __ & # 39). استبدال (& # 39. & # 39، مسار نظام التشغيل. فصل)
إذا كان ispkg == 1:
filePath = نظام التشغيل طريق . انضم (dirName ، fileName ، & # 39__init __. pyc & # 39)
آخر :
filePath = نظام التشغيل طريق . انضم (dirName ، fileName + & # 39.pyc & # 39)
fileDir = نظام التشغيل. طريق . اسم الدليل (مسار الملف)
إن لم يكن نظام التشغيل. طريق . موجود (fileDir):
نظام التشغيل. makedirs (fileDir)
محاولة :
البيانات = و. قراءة (الطول)
البيانات = zlib. فك ضغط (البيانات)
إلا :
طباعة (& # 39 [!] خطأ: فشل فك الضغط <0> ، ربما تم تشفيره. الاستخراج كما هو. & # 39. تنسيق (مسار الملف))
فتح (filePath + & # 39.Crypted & # 39، & # 39wb & # 39). الكتابة (البيانات)
آخر :
الذات . _writePyc (مسار الملف ، البيانات)
def main ():
إذا كان len (sys. argv) & lt 2:
print (& # 39 [+] الاستخدام: pyinstxtractor.py & ltfilename & gt & # 39)
آخر :
arch = PyInstArchive (sys. argv [1])
إذا كان القوس. افتح ():
إذا كان القوس. check الملف ():
إذا كان القوس. getCArchiveInfo ():
قوس. parseTOC ()
قوس. إستخراج الملفات ()
قوس. أغلق ()
print (& # 39 [+] أرشيف pyinstaller المستخرج بنجاح: تنسيق <0> & # 39. (sys. argv [1]))
طباعة (& # 39 & # 39)
print (& # 39 يمكنك الآن استخدام أداة فك تشفير python على ملفات pyc داخل الدليل المستخرج & # 39)
إرجاع
قوس. أغلق ()
إذا كان __name__ == & # 39__ الرئيسي __ & # 39:
الأساسية ()

لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي.

لقد قمت بتسجيل الدخول بعلامة تبويب أو نافذة أخرى. أعد تحميل لتحديث جلستك. لقد قمت بتسجيل الخروج في علامة تبويب أو نافذة أخرى. أعد تحميل لتحديث جلستك.


يقرأ أساسيات الطب النفسي

الطب النفسي وطلاب الكلية

مستقبل العلاج النفسي

على الرغم من عقد الدماغ والاستثمار الفخم في القطاعين العام والخاص ، جفت الابتكارات الصيدلانية في العقد الأول من القرن الحادي والعشرين. لم يتم اكتشاف فئات جديدة من الأدوية أو الأدوية النفسية الرائجة. علاوة على ذلك ، احتلت الآثار الجانبية للأدوية المستخدمة على نطاق واسع عناوين الأخبار ، والتي لم يتم التعرف عليها سابقًا أو لم يتم تقديرها بشكل كافٍ. تورطت مثبطات استرداد السيروتونين الانتقائية في زيادة السلوك الانتحاري ، وأبلغ بعض المرضى عن "متلازمات توقف" شديدة عند التوقف عن العلاج. ارتبطت مضادات الذهان اللانمطية بـ "متلازمة التمثيل الغذائي" لزيادة الوزن وزيادة خطر الإصابة بمرض السكري ومضاعفات طبية أخرى. ومما زاد الطين بلة ، أن الملايين التي أنفقت على أبحاث الدماغ الأساسية لم تؤد إلى أي تقدم في فهمنا للمسببات النفسية ، ولا إلى علاجات بيولوجية جديدة. علاوة على ذلك ، تم تغريم شركات الأدوية مرارًا وتكرارًا مقابل مبالغ ضخمة للترويج لأدوية نفسية قوية ومكلفة لاستخدامات غير مصرح بها.

أثار إصدار DSM-5 في عام 2013 الكثير من الجدل. انتقد الدكتور ألين فرانسيس ، رئيس فريق عمل APA الذي أشرف على الإصدار السابق ، الجهد الجديد لتحيزه الطبي / البيولوجي ، ولتوسيع نطاق الاضطرابات النفسية بطرق تقلل من نطاق الحياة الطبيعية. وقع آلاف الأطباء والباحثين في مجال الصحة العقلية على التماسات تعارض الإصدار الجديد لأسباب مماثلة. أعلن NIMH أنه لم يعد يستخدم تشخيص DSM في أبحاثه لأن تعريفات DSM كانت نتاج إجماع الخبراء ، وليست بيانات تجريبية. مثل التحليل النفسي قبله ، فإن النموذج السائد الجديد ، الطب النفسي باعتباره تخصصًا "بيولوجيًا عصبيًا" ، قد تجاوز أيضًا.

تضررت سمعة الطب النفسي بسبب ذلك. بمجرد أن يُنظر إلى الأطباء النفسيين في العيادة على أنهم مجرد تقنيين ، يهاجمون الأعراض العاطفية بوصفة طبية واحدة تلو الأخرى. يُترك التعرف على الشخص الذي يقف وراء الأعراض للمعالجين غير النفسيين ، مما يحجب العلاقة الوثيقة في كثير من الأحيان بين الاستجابة الدوائية وعلم النفس.

إن شفاء الصدع بين الطب النفسي البيولوجي والعلاج النفسي قد تم التنبؤ به في السبعينيات من خلال النموذج الطبي النفسي الاجتماعي لجورج إنجل وعمل إريك آر كانديل المخبري على أساس السلوك الخلوي. (تستحق ورقة Kandel الكلاسيكية لعام 2001 القراءة). حتى في ذروة إضفاء الطابع الطبي على الطب النفسي في الثمانينيات والتسعينيات من القرن الماضي ، تم التعرف على أن الديناميات اللاواعية تؤثر على العلاقة بين الطبيب والمريض ، وأن العوامل الشخصية تؤثر بقوة على ما إذا كان المرضى يشعرون بأنهم يساعدون. مع العلاج. لقد حان الوقت مرة أخرى للاعتراف بأن العديد من مرضى العيادات الخارجية ، على الأرجح معظمهم ، يسعون للعلاج ليس للأعراض المنفصلة ولكن لعدم الرضا المنتشر ، والعلاقات العاصفة ، والتخريب الذاتي غير المقصود ، وردود الفعل الانفصالية ، وغيرها من البؤس الذي لا يمكن اختزاله بسهولة إلى معايير التشخيص DSM. التخيل المريح القائل بأنه يمكن تقطير مشاعر الناس في "قائمة المشاكل" ليس ملائمًا على الإطلاق.

لا يمكن أن يكون مستقبل الطب النفسي "بلا عقل" أو "بلا عقل". يشير التاريخ إلى العديد من الحالات التي كان يُعتقد في السابق أنها "عقلية" (شلل جزئي عام ، قماءة ، شيخوخة ، نوبات صرع ، إلخ) والتي عُرفت الآن بأنها طبية. تعد أبحاث الدماغ ضرورية ، حيث من المؤكد أن تأتي المزيد من الأمثلة. من الواضح أيضًا أننا لسنا قريبين من تحليل وعلاج علم النفس البشري على المستوى العصبي. قد يكون هذا ممكنًا يومًا ما ، لكن في الوقت الحالي ، فإن أي ادعاءات من هذا القبيل سابقة لأوانها بشكل سخيف. من المرجح أن يصبح التمييز بين الطبي والنفسي أقل حدة في السنوات المقبلة ، حيث سيتم ربط بعض الاختلافات الجينية أو غيرها من الاختلافات البيولوجية بنقاط الضعف النفسية.

ومع ذلك ، فإن التوتر المضطرب بين الطب النفسي البيولوجي والنفسي لن ينتهي قريبًا ، فمن الأفضل احتضانه بدلاً من اختيار أحد الجانبين. من المؤكد أن الطب النفسي القوي للمستقبل سيطالب بنطاق واسع ، من الأساس الخلوي للسلوك ، إلى علم النفس الفردي ، إلى ديناميكيات الأسرة ، وأخيراً إلى المجتمع والظواهر الاجتماعية التي تؤثر علينا جميعًا.


Jet PYc-20 - التاريخ

من نحن

تتمتع ExpressJet Airlines بتاريخ يمتد 35 عامًا من الخدمة والأداء الفائقين وهي اندماج شركة Atlanta SouthEast Airlines (ASA) و Continental Express ، وهما شركتان تابعتان سابقًا لشركة Delta Air Lines و Continental Airlines على التوالي.

نعتقد أن العقد الماضي من توحيد الصناعة قد أوجد العديد من الفرص لاحتياجات العملاء التي لم تتم تلبيتها في العديد من المدن. تعتزم خطة أعمالنا لعام 2021 تلبية احتياجات العملاء غير الملباة من خلال توفير رحلات طيران عالية الجودة وموثوقة وفعالة من نقطة إلى نقطة إلى المدن الصغيرة والمتوسطة الحجم التي فقدت الخدمة في السنوات الأخيرة نتيجة لتوحيد صناعة الطيران الأمريكية وبلغت ذروتها في تخفيضات إضافية مدفوعة بـ COVID-19.

قدمت ExpressJet إلى وزارة النقل الأمريكية (DOT) لإعادة هيئة DOT للياقة إلى وضعها السابق لإجراء الأعمال التجارية. لاحظ أن ExpressJet حافظت على سلطتها للطيران FAA كشركة طيران من الجزء 121.

يشتمل أسطول طائرات ExpressJet الحالي على طائرات ERJ145 النفاثة ذات 50 مقعدًا ، كما أن شهادتنا تؤهلنا للطيران بالطائرات EMB 170/175/190 و CRJ 200/700/900 و ERJ135 في وقت قصير.

ستستفيد خططنا لعام 2021 وما بعده من تاريخ الشركة الممتد 35 عامًا في نقل عدة مئات من الطائرات إلى أكثر من 300 مطار في الأمريكتين. ستركز هذه الخطة على أزواج المدن غير المخدومة أو التي تم التخلي عنها من قبل شركات الطيران الكبرى ، "شركات الطيران منخفضة التكلفة للغاية" وحتى الوافدين الجدد من شركات الطيران.

ExpressJet متحمسة للفرصة المتاحة أمامها ، وسنعلن التفاصيل في الأسابيع المقبلة.


التطعيم ضد الانفلونزا بواسطة الحقن النفاث

الحاقن النفاث هو جهاز طبي يستخدم للتلقيح يستخدم تيارًا ضيقًا عالي الضغط من السائل لاختراق الجلد بدلاً من إبرة تحت الجلد. يمكن تشغيل الحاقنات النفاثة بالغاز المضغوط أو الينابيع. تم اختراع الأجهزة في الستينيات واستخدمت بنجاح في جهود التلقيح الشاملة للقضاء على الجدري والأمراض الأخرى. في الماضي ، كانت الأجهزة تُستخدم غالبًا لتلقيح أفراد القوات المسلحة.

ما هي لقاحات الانفلونزا المتوفرة عن طريق الحقن النفاث هذا الموسم؟

تمت الموافقة على لقاح واحد من لقاح الإنفلونزا ، AFLURIA Quadrivalent & reg ، للاستخدام مع الحاقن النفاث هذا الموسم. يوفر لقاح الإنفلونزا AFLURIA رباعي التكافؤ (أي أربعة مكونات) الحماية ضد فيروس الأنفلونزا A (H1N1) وفيروس الأنفلونزا A (H3N2) وفيروسين من فيروسات الأنفلونزا B. لمزيد من المعلومات ، راجع ما يجب أن تعرفه لموسم 2020-2021.

من الذي يمكن تطعيمه بلقاح الأنفلونزا المعطى بواسطة الحقن النفاث؟

تمت الموافقة على التطعيم ضد الإنفلونزا باستخدام AFLURIA Quadrivalent & reg عن طريق الحقن النفاث للاستخدام في الأشخاص الذين تتراوح أعمارهم بين 18 و 64 عامًا. يمكن أيضًا إعطاء AFLURIA رباعي التكافؤ عن طريق إبرة وحقنة ، للأشخاص الذين يبلغون من العمر 6 أشهر فما فوق.

ما مدى فعالية لقاح الأنفلونزا الذي يتم إعطاؤه بواسطة جهاز الحقن النفاث؟

أظهرت بيانات التجارب السريرية المستخدمة في موافقة إدارة الغذاء والدواء الأمريكية (FDA) و rsquos على لقاح إنفلونزا الحقن النفاث (على سبيل المثال ، حاقن PharmaJet Stratis الخالي من الإبر المستخدم مع AFLURIA & reg السابق) أن التطعيم باستخدام طريقة الحقن النفاث هذه قدم مستوى غير أدنى (أي مشابه) من الحماية المناعية مقارنة بلقاح الأنفلونزا نفسه الذي يتم إعطاؤه عن طريق لقاح الإنفلونزا التقليدي.

ما هي الآثار الجانبية المرتبطة بالتطعيم ضد الإنفلونزا الذي يتم إعطاؤه عن طريق الحقن بالطائرات النفاثة؟

في البالغين الذين تتراوح أعمارهم بين 18 و 64 عامًا ، كانت التفاعلات الضائرة الأكثر شيوعًا في مواقع الحقن التي لوحظت في دراسة سريرية للقاح إنفلونزا الحقن النفاث حتى 7 أيام بعد التطعيم هي الألم والتورم والألم والاحمرار والحكة والكدمات. كانت أكثر الأحداث السلبية الجهازية شيوعًا خلال هذه الفترة هي الألم العضلي (آلام العضلات) ، والتوعك (أي الشعور بعدم الراحة أو عدم الارتياح كما هو الحال عندما تمرض لأول مرة) ، والصداع.

هل لقاح الانفلونزا المعطى بواسطة الحقن النفاث يحتوى على الثيميروسال؟

نعم فعلا. تأتي تركيبة Afluria الرباعية التكافؤ والمنظمة المستخدمة للإعطاء عن طريق الحقن النفاث في قوارير متعددة الجرعات ، والتي تحتوي على مادة الثيميروسال. لمزيد من المعلومات ، راجع لقاحات أنفلونزا Thimerosal.


فيديوهات ذات علاقة

يتحدث خبير UFO والمخرج الاستقصائي جيريمي كوربل عن التقرير الأخير للحكومة & # 039 s عن UFO & # 039s.

تقرير أمريكي جديد عن الأجسام الطائرة المجهولة ، لا يستبعد التكنولوجيا الغريبة.

ومن المقرر أن يصدر البنتاغون التقرير الذي تفرضه الحكومة والذي سيقدم بعض المعلومات عن الطائرة المجهولة.


شراء طائرة

فيديو: فحص الشراء المسبق

يعد فحص الشراء المسبق للطائرة هو فرصتك للبحث والتحقيق في كل جانب من جوانب استثمارك المحتمل. يجب أن يتضمن الشراء المسبق فحصًا شاملاً للحالة الميكانيكية وكذلك التجميلية للطائرة. بالإضافة إلى ذلك ، يجب النظر في الوضع القانوني للطائرة. وهذا يشمل التأكد من أن سجلات القوات المسلحة الأنغولية على الطائرة محدثة. غالبًا ما يتم التغاضي عن خطوة الشراء المسبق وهي التحقق من أي شركة الاتصالات السعودية مثبتة بشكل قانوني على الطائرة. يناقش هذا الفيديو ما يجب القيام به في حالة فقد أوراق شركة الاتصالات السعودية.

VREF & [مدش] تعرف على القيمة

استخدم خدمة تقييم الطائرات من AOPA ، التي تقدمها VREF ، لإجراء تقييم للطائرة عبر الإنترنت. تعرف عن:

  • قيمة الطائرات
  • معدات إضافية نموذجية
  • الأداء والمواصفات
  • بيانات المحرك

نصائح حول شراء الطائرات المستعملة

شراء طائرة هو التزام رئيسي يجب النظر فيه بعناية. هذا مهم بشكل خاص عند شراء طائرة مستعملة. قبل التفكير في الشراء ، اقرأ هذه النصائح حول شراء طائرة مستعملة.

تمويل طائرة

خدمات العنوان والضمان

/> تأمين الطائرات

كشريك AOPA & rsquos لتأمين الطيران ، تتفهم AssuredPartners Aerospace احتياجات الطيران الخاصة بك. يمكننا التعامل مع الطيارين الانتقاليين والمخاطر الفريدة مع تقديم خصومات على عضوية AOPA. اتصل على 800.622.2672 أو قم بزيارة
ap-aerospace.com اليوم للحصول على عرض أسعار مجاني!

نماذج بيع وشراء الطائرات

8050-3- التسجيل الحالي في الطائرة ، تم ملؤه وتوقيعه وإرساله إلى FAA.

عادة ما يتم نقل شهادة الصلاحية للطيران بالطائرة عند بيعها ، لكن الشهادة وحدها لا تفي بالمتطلبات التنظيمية. يجب على المشتري التأكد من أن شهادة الصلاحية للطيران ، كما تحدد اللائحة ، سارية.


مستشفى نيوينجتون للأطفال

زار جيم غيج ، جراح العظام ، ساذرلاند (الذي انتقل إلى سان دييغو بحلول هذا الوقت) ، قبل إنشاء خدمة جديدة لتحليل المشي في مستشفى نيوينجتون للأطفال (حل محلها الآن مركز كونيتيكت الطبي للأطفال). عمل مع عدد من المهندسين بما في ذلك سكوت تاشمان ودينيس تيبورسكي وروي ديفيس الذين طوروا النموذج. كان التطور الأكثر أهمية هو تأسيس حساب الزاوية على تقديرات مواقع المركز المشترك (بدلاً من وضع العلامات مباشرة). كانت نسخة مبكرة من هذا النموذج جاهزة لأول مريض شاهدته الخدمة في يوليو 1981. كما تم تنفيذ الديناميات المعكوسة وفقًا لمقاربة ديفيد وينتر (1978) وتم دمجها بحلول عام 1985. تم الإبلاغ عن العمل في ورقتين (ديفيس) وآخرون ، 1991.

الطفل الأول في مختبر نيوينجتون ، يوليو 1981


Jet PYc-20 - التاريخ

0 المساهمين

المستخدمون الذين ساهموا في هذا الملف

#! / usr / bin / python
& quot & quot & quot
PyInstaller Extractor v1.8 (يدعم pyinstaller 3.2 ، 3.1 ، 3.0 ، 2.1 ، 2.0)
المؤلف: Extreme Coders
البريد الإلكتروني: Extremeecoders (at) hotmail (dot) com
الويب: https://0xec.blogspot.com
التاريخ: 28-نيسان -2017
عنوان URL: https://sourceforge.net/projects/pyinstallerextractor/
لأية اقتراحات ، اترك تعليقا على
https://forum.tuts4you.com/topic/34455-pyinstaller-extractor/
يستخرج هذا البرنامج النصي ملفًا تنفيذيًا تم إنشاؤه بواسطة pyinstaller.
ليس هناك حاجة لتثبيت Pyinstaller. النص يحتوي على كل شيء.
للحصول على أفضل النتائج ، يوصى بتشغيل هذا البرنامج النصي بتنسيق
نفس إصدار python الذي تم استخدامه لإنشاء الملف القابل للتنفيذ.
هذا فقط لمنع أخطاء إلغاء التنظيم (إن وجدت) أثناء
استخراج أرشيف PYZ.
الاستخدام: ما عليك سوى نسخ هذا البرنامج النصي إلى الدليل حيث يوجد ملف exe الخاص بك
وتشغيل البرنامج النصي مع اسم ملف exe كمعامل
C: مسار t o exe & gtpython pyinstxtractor.py & ltfilename & gt
$ / path / to / exe / python pyinstxtractor.py & ltfilename & gt
مُرخصة بموجب رخصة جنو العمومية العامة (GPL) v3.
أنت حر في تعديل هذا المصدر.
التغيير
================================================
الإصدار 1.1 (28 يناير 2014)
-------------------------------------------------
- الإصدار الأول
- يدعم فقط pyinstaller 2.0
الإصدار 1.2 (12 سبتمبر 2015)
-------------------------------------------------
- تمت إضافة دعم لبرنامج pyinstaller 2.1 و 3.0 dev
- تنظيف الكود
- أصبح النص الآن أكثر تفصيلاً
- قابل للتنفيذ مستخرج داخل دليل فرعي مخصص
(دعم pyinstaller 3.0 dev تجريبي)
الإصدار 1.3 (12 ديسمبر 2015)
-------------------------------------------------
- دعم إضافي لبرنامج pyinstaller 3.0 النهائي
- البرنامج النصي متوافق مع كل من python 2.x و amp 3.x (بفضل Moritz Kroll @ Avira Operations GmbH & amp Co. KG)
الإصدار 1.4 (19 يناير 2016)
-------------------------------------------------
- إصلاح الخلل عند كتابة ملفات pyc & gt = الإصدار 3.3 (بفضل Daniello Alto: https://github.com/Djamana)
الإصدار 1.5 (1 مارس 2016)
-------------------------------------------------
- دعم إضافي لبرنامج pyinstaller 3.1 (بفضل Berwyn Hoyt للإبلاغ)
الإصدار 1.6 (5 سبتمبر 2016)
-------------------------------------------------
- إضافة دعم لبرنامج pyinstaller 3.2
- سيستخدم المستخرج اسمًا عشوائيًا أثناء استخراج الملفات غير المسماة.
- بالنسبة لأرشيفات pyz المشفرة ، سيتم تفريغ المحتويات كما هي. في السابق ، كانت الأداة تفشل.
الإصدار 1.7 (13 مارس 2017)
-------------------------------------------------
- جعل البرنامج النصي متوافقًا مع python 2.6 (بفضل روس للإبلاغ)
الإصدار 1.8 (28 أبريل 2017)
-------------------------------------------------
- دعم الدلائل الفرعية في ملفات .pyz (بفضل Moritz Kroll @ Avira Operations GmbH & amp Co. KG)
& quot & quot & quot
& quot & quot & quot
المؤلف: في مينغ لوه
البريد الإلكتروني: [email protected]
Changes have been made to Version 1.8 (April 28, 2017).
CHANGELOG
================================================
- Function extractFiles(self, custom_dir=None) has been modfied to allow custom output directory.
"""
import os
import struct
import marshal
import zlib
import sys
import imp
import types
from uuid import uuid4 as uniquename
class CTOCEntry :
def __init__ ( self , position , cmprsdDataSize , uncmprsdDataSize , cmprsFlag , typeCmprsData , name ):
self . position = position
self . cmprsdDataSize = cmprsdDataSize
self . uncmprsdDataSize = uncmprsdDataSize
self . cmprsFlag = cmprsFlag
self . typeCmprsData = typeCmprsData
self . name = name
class PyInstArchive :
PYINST20_COOKIE_SIZE = 24 # For pyinstaller 2.0
PYINST21_COOKIE_SIZE = 24 + 64 # For pyinstaller 2.1+
MAGIC = b'MEI 14 13 12 13 16 ' # Magic number which identifies pyinstaller
def __init__ ( self , path ):
self . filePath = path
def open ( self ):
try :
self . fPtr = open ( self . filePath , 'rb' )
self . fileSize = os . stat ( self . filePath ). st_size
except :
print ( '[*] Error: Could not open <0>' . format ( self . filePath ))
return False
return True
def close ( self ):
try :
self . fPtr . close ()
except :
pass
def checkFile ( self ):
print ( '[*] Processing <0>' . format ( self . filePath ))
# Check if it is a 2.0 archive
self . fPtr . seek ( self . fileSize - self . PYINST20_COOKIE_SIZE , os . SEEK_SET )
magicFromFile = self . fPtr . read ( len ( self . MAGIC ))
if magicFromFile == self . MAGIC :
self . pyinstVer = 20 # pyinstaller 2.0
print ( '[*] Pyinstaller version: 2.0' )
return True
# Check for pyinstaller 2.1+ before bailing out
self . fPtr . seek ( self . fileSize - self . PYINST21_COOKIE_SIZE , os . SEEK_SET )
magicFromFile = self . fPtr . read ( len ( self . MAGIC ))
if magicFromFile == self . MAGIC :
print ( '[*] Pyinstaller version: 2.1+' )
self . pyinstVer = 21 # pyinstaller 2.1+
return True
print ( '[*] Error : Unsupported pyinstaller version or not a pyinstaller archive' )
return False
def getCArchiveInfo ( self ):
try :
if self . pyinstVer == 20 :
self . fPtr . seek ( self . fileSize - self . PYINST20_COOKIE_SIZE , os . SEEK_SET )
# Read CArchive cookie
( magic , lengthofPackage , toc , tocLen , self . pyver ) =
struct . unpack ( '!8siiii' , self . fPtr . read ( self . PYINST20_COOKIE_SIZE ))
elif self . pyinstVer == 21 :
self . fPtr . seek ( self . fileSize - self . PYINST21_COOKIE_SIZE , os . SEEK_SET )
# Read CArchive cookie
( magic , lengthofPackage , toc , tocLen , self . pyver , pylibname ) =
struct . unpack ( '!8siiii64s' , self . fPtr . read ( self . PYINST21_COOKIE_SIZE ))
except :
print ( '[*] Error : The file is not a pyinstaller archive' )
return False
print ( '[*] Python version: <0>' . format ( self . pyver ))
# Overlay is the data appended at the end of the PE
self . overlaySize = lengthofPackage
self . overlayPos = self . fileSize - self . overlaySize
self . tableOfContentsPos = self . overlayPos + toc
self . tableOfContentsSize = tocLen
print ( '[*] Length of package: <0>bytes' . format ( self . overlaySize ))
return True
def parseTOC ( self ):
# Go to the table of contents
self . fPtr . seek ( self . tableOfContentsPos , os . SEEK_SET )
self . tocList = []
parsedLen = 0
# Parse table of contents
while parsedLen < self . tableOfContentsSize :
( entrySize , ) = struct . unpack ( '!i' , self . fPtr . read ( 4 ))
nameLen = struct . calcsize ( '!iiiiBc' )
( entryPos , cmprsdDataSize , uncmprsdDataSize , cmprsFlag , typeCmprsData , name ) =
struct . unpack (
'!iiiBc<0>s' . format ( entrySize - nameLen ),
self . fPtr . read ( entrySize - 4 ))
name = name . decode ( 'utf-8' ). rstrip ( '' )
if len ( name ) == 0 :
name = str ( uniquename ())
print ( '[!] Warning: Found an unamed file in CArchive. Using random name <0>' . format ( name ))
self . tocList . append (
CTOCEntry (
self . overlayPos + entryPos ,
cmprsdDataSize ,
uncmprsdDataSize ,
cmprsFlag ,
typeCmprsData ,
name
))
parsedLen += entrySize
print ( '[*] Found <0>files in CArchive' . format ( len ( self . tocList )))
def extractFiles ( self , custom_dir = None ):
print ( '[*] Beginning extraction. please standby' )
if custom_dir is None :
extractionDir = os . path . join ( os . getcwd (), os . path . basename ( self . filePath ) + '_extracted' )
if not os . path . exists ( extractionDir ):
os . mkdir ( extractionDir )
os . chdir ( extractionDir )
else :
if not os . path . exists ( custom_dir ):
os . makedirs ( custom_dir )
os . chdir ( custom_dir )
for entry in self . tocList :
basePath = os . path . dirname ( entry . name )
if basePath != '' :
# Check if path exists, create if not
if not os . path . exists ( basePath ):
os . makedirs ( basePath )
self . fPtr . seek ( entry . position , os . SEEK_SET )
data = self . fPtr . read ( entry . cmprsdDataSize )
if entry . cmprsFlag == 1 :
data = zlib . decompress ( data )
# Malware may tamper with the uncompressed size
# Comment out the assertion in such a case
assert len ( data ) == entry . uncmprsdDataSize # Sanity Check
with open ( entry . name , 'wb' ) as f :
f . write ( data )
if entry . typeCmprsData == b'z' :
self . _extractPyz ( entry . name )
def _extractPyz ( self , name ):
dirName = name + '_extracted'
# Create a directory for the contents of the pyz
if not os . path . exists ( dirName ):
os . mkdir ( dirName )
with open ( name , 'rb' ) as f :
pyzMagic = f . read ( 4 )
assert pyzMagic == b'PYZ' # Sanity Check
pycHeader = f . read ( 4 ) # Python magic value
if imp . get_magic () != pycHeader :
print ( '[!] Warning: The script is running in a different python version than the one used to build the executable' )
print ( ' Run this script in Python <0>to prevent extraction errors(if any) during unmarshalling' . format ( self . pyver ))
( tocPosition , ) = struct . unpack ( '!i' , f . read ( 4 ))
f . seek ( tocPosition , os . SEEK_SET )
try :
toc = marshal . load ( f )
except :
print ( '[!] Unmarshalling FAILED. Cannot extract <0>. Extracting remaining files.' . format ( name ))
إرجاع
print ( '[*] Found <0>files in PYZ archive' . format ( len ( toc )))
# From pyinstaller 3.1+ toc is a list of tuples
if type ( toc ) == list :
toc = dict ( toc )
for key in toc . keys ():
( ispkg , pos , length ) = toc [ key ]
f . seek ( pos , os . SEEK_SET )
fileName = key
try :
# for Python > 3.3 some keys are bytes object some are str object
fileName = key . decode ( 'utf-8' )
except :
pass
# Make sure destination directory exists, ensuring we keep inside dirName
destName = os . path . join ( dirName , fileName . replace ( ".." , "__" ))
destDirName = os . path . dirname ( destName )
if not os . path . exists ( destDirName ):
os . makedirs ( destDirName )
try :
data = f . read ( length )
data = zlib . decompress ( data )
except :
print ( '[!] Error: Failed to decompress <0>, probably encrypted. Extracting as is.' . format ( fileName ))
open ( destName + '.pyc.encrypted' , 'wb' ). write ( data )
continue
with open ( destName + '.pyc' , 'wb' ) as pycFile :
pycFile . write ( pycHeader ) # Write pyc magic
pycFile . write ( b'' * 4 ) # Write timestamp
if self . pyver >= 33 :
pycFile . write ( b'' * 4 ) # Size parameter added in Python 3.3
pycFile . write ( data )
def main ():
if len ( sys . argv ) < 2 :
print ( '[*] Usage: pyinstxtractor.py <filename>' )
else :
arch = PyInstArchive ( sys . argv [ 1 ])
if arch . open ():
if arch . checkFile ():
if arch . getCArchiveInfo ():
arch . parseTOC ()
arch . extractFiles ()
arch . close ()
print ( '[*] Successfully extracted pyinstaller archive: <0>' . format ( sys . argv [ 1 ]))
print ( '' )
print ( 'You can now use a python decompiler on the pyc files within the extracted directory' )
إرجاع
arch . close ()
if __name__ == '__main__' :
main ()

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.


شاهد الفيديو: Whitefriar street church