קימפול אצווה ליישום EXE בלי אפשרות להינדוס לאחור
-
@שקוע-בלימוד כתב בקימפול אצווה ליישום EXE בלי אפשרות להינדוס לאחור:
.
א. פשוט, תוכנה שמקמפלת אצווה בלי אפשרות הינדוס לאחור.להבנתי זה לא כל כך אפשרי
כי אחרי הכל הקובץ חייב להיות מפוענח כדי ש-CMD יוכל להריץ אותוב. תוכנה שמקמפלת קובץ EXE לקובץ EXE רק בצורה שונה
לא הבנתי כלל את הכוונה
ג. תוכנה שמקמפלת סקריפטים של powershell בלי אפשרות הינדוס לאחור, ואז אטמיע את הבאטש בפווארשל.
כנ״ל אות א.
נ.ב. עיין חוקי הפורום ב.5
רצוי מאוד גם לא לתייג שאין הכרח
-
@שקוע-בלימוד עקרונית אפשר לכתוב פקודות cmd בשפת תכנות אחרת (כמו פייתון) ולקמפל את הסקריפט של השפה האחרת רק שזה מאוד מסורבל ולא חושב שהכל אפשרי בשיטה הזאת
-
@אף-אחד-3 האמת שאין לי ניסיון בקמפול לEXE ולכן אני לא מגיב לשואל, אבל בנוגע לתגובתך שאפשר לכתוב בPython, אולי יש לי מה להוסיף:
בנוגע ליצירת תוכנות לWindows או Linux, יצא לי להשתמש בעבר בספריה PyInstaller כדי לקמפל את התוכנה, הספריה למעשה עוברת על הקוד (Type introspection), מזהה את התלויות הנצרכות (והוא תומך בהמון תלויות פופולאריות), ואורזת לEXE.
את הספריה ניתן לייבא עם import לסקריפט, אבל אפשר להשתמש בספריה דרך הCLI בקלות.
הקמפול עצמו בגדול פשוט מאוד:$ pyinstaller cli.py
PyInstaller יצור קובץ Spec, תיקית build עם המטא-נתונים ותיקית Dist עם התלויות וקובץ ההרצה הסופי (EXE).
את שם התוכנה מגדירים עם הדגל --name, ועם הדגל --onefile מגדירים שיארוז את כל התלויות לקובץ אחד. כמו״כ ניתן להגדיר שיצור קובץ לוג באמצעות הדגל --log-level=DEBUG.
ולסיום, שים לב למגבלה שיש בספריה: אם אתה רוצה ליצור ישום לWindows אתה חייב להשתמש באותו מערכת הפעלה, כלומר, שגם המחשב שלך יהיה Windows, כי PyInstaller לא תומך ב״הצלבה״ (Cross compiler).אמנם כמו שכתבתי התשובה הזאת לא עוזרת במאום לשואל השאלה, אבל בכל זאת חשבתי להוסיף זאת כהערת אגב, אולי יסייע לאי-מי. לילה טוב.
-
@שקוע-בלימוד הנושא הזה זה לא היה אמור להיפתח בגומלין.
אנא עבור על חוקי הפורום והקפד ליישמם. -
אני לא יודע איך bat to exe עובד (כי אני בחיים לא מקמפל סקריפטים), זה יכול להיות בשני דרכים, או שהוא ממש מקמפל את הסקריפט לקוד בינארי, או שהוא פשוט יוצר wrapper כלשהו לסקריפט המקורי, ובשעת ההרצה הוא שומר אותו בתקיה זמנית ומריץ אותו מה-cmd. אם הדרך הראשונה היא הנכונה אז אין אפשרות להגיע לקוד המקור.
מדברי @yossiz עולה שהוא הבין (הוא שהוא יודע) שזה פועל כמו האפשרות השנייה, אז אם כן האפשרות הנכונה זה להשתמש בכלי בערפול לסקריפט עצמו, מרפרוף מהיר נראה שיש כמה כלים שעושים את זה, לדוג' Bat2Exe (נראה שהוא גם ממיר ל-exe וגם מערפל את הסקריפט).
-
@קומפיונט
סליחה על הבקשה, אבל אני לא ממש יודע איך עובדים עם גייטהב. לא הבנתי מה צריך להוריד, קובץ אחד שהורדתי לא ממש פועל, והשני מזוהה כוירוס בשלוש סוגי אנטי וירוס...
השאלה היא אם מישהו מסכים להעלות את קובץ התוכנה האמיתי לשרת של הפורום.
יש"כ! -
@שקוע-בלימוד כתב בקימפול אצווה ליישום EXE בלי אפשרות להינדוס לאחור:
השאלה היא אם מישהו מסכים להעלות את קובץ התוכנה האמיתי לשרת של הפורום.
קישור ישיר להורדה:
https://github.com/dehoisted/Bat2Exe/releases/download/v2.1/Bat2Exe.zip -
@אף-אחד-3
סליחה שאני מגיב באיחור לנושא ישן, אבל חשבתי שראוי לשתף ספריה חדשה שהשתמשתי בה שיכולה לעשות קמפול קובץ פייתון ל-EXE כהמשך ישיר לנושא זה, ומזוהה פחות בפער משמעותי כוירוס באנטי וירוסים השונים על פני PyInstaller. השם של הספריה הוא py2exe, וכמו קודמתה, היא גם נוחה מאוד לשימוש.אבל רגע, עכשיו כשאני חושב על זה, האמת שאפשר להשתמש גם בPyInstaller בשילוב של כלים בפייתון לעקיפת האנטי-וירוס, כדוגמת Phantom-Evasion, או בScareCrow במקרה שמדובר בקבצי DLL או בכלי Invoke-Stealth כשמודבר בסביבת PowerShell.
כך או כך, ניכר שיש דרכים לעקוף את הזיהוי כוירוס של מערכת ההפעלה/האנטי וירוסים השונים. -
במחשבי ווינדוס מגיעה תוכנה מראש בשם iexpress, אתה יכול להעלות אליה את הקובץ BAT שלך, נניח שקוראים לו
script.bat
, ואז בסקריפט "התקנה" לכתובcmd /c "script.bat"
,
רק לוודא שאתה מריץ את iexpress כמנהל.
בסוף התהליך התוכנה תייצר לך exe עם הסקריפט שלך "דחוס" בתוכו, כך שבכל פעם שמריצים אותו, הוא פותח את הדחיסה ומריץ את הסקריפט.
מי שלא יודע איך עובד iexpress כמובן לא יצליח למצוא את הסקריפט המקורי, אבל מי שכן, אז הוא יודע שזה מחולץ לתיקייה קבועה שאפשר למצוא שם את הקובץ המקורי של הסקריפט.אני לא חושב שזה הפיתרון הכי טוב, אבל זה פיתרון שלא דורש תוכנות חיצוניות.