קימפול קובץ EXE - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

קימפול קובץ EXE


AcidBurn10

Recommended Posts

שלום חברים ,

אני רוצה לדעת איך אפשר לקמפל קובץ EXE קיים לקובץ EXE חדש ?

בעזרת תוכנה / סקריפט....

כלומר , ליצור קובץ EXE שיריץ את הקובץ הקיים , אבל אני רוצה שהכל יהיה בקובץ אחד , לא 2 קבצים נפרדים.

תודה.

קישור לתוכן
שתף באתרים אחרים

  • תגובות 31
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

משתתפים בולטים בדיון

אני מניח שאתה מדבר על קבצי הרצה של חלונות ?

יש את השיטה המכוערת שלשים את זה בתור resource:

http://www.cs.nyu.edu/~vs667/articles/embed_executable_tutorial/

ואפשר לשלב את זה ולהריץ ישירות, כנראה על פי הקוד בסוף הדיון פה:

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22403245.html

קישור לתוכן
שתף באתרים אחרים

אני לא בטוח, אבל אני חושב שאתה מדבר על exe binding...

יש המון תוכנות שמאפשרות לך לעשות את זה אחת כזאת כבר נמצאת כבר ב XP/2K

קוראים לה iexpress.

ויש עוד 1001 תוכנות פשוט תריץ:

http://www.google.com/search?hl=en&q=exe+binders&btnG=Search

ויש גם את AutoIt שמאפשרת לך לעשות אז זה מאוד בקלות, בעזרת פונקציה מגניבה שנקראת FileInstall

היתרון עם AutoIt הוא שיש לך שליטה מלאה.

הנה סקריפט קטן שפרסמתי פה לא מזמן שעושה שימוש ב FileInstall :

http://hwzone.co.il/community/index.php?topic=238676.0

קישור לתוכן
שתף באתרים אחרים

אוקיי , אז ככה

אני אסביר בדיוק למה אני צריך את זה

יש לי קובץ Self Extractor .

עכשיו , אם לוחצים עליו לחצן ימני אפשר לפתוח אותו ב-winrar , winzip וכו' ..

שפותחים אותו יש מן הסתם את הקבצים שבפנים.

אני רוצה ליצור קובץ EXE חדש לגמרי שלא ניתן יהיה לפתוח אותו בצורה כזאת..

הקבצים האלה בכל מקרה יפתחו בטח ל-TEMP או משהו , אבל זה לא ממש משנה

מה שחשוב לי זה שלא ניתן יהיה לראות את הקבצים בצורה של right click.

וסיסמה אני לא רוצה לשים לקובץ...

רעיונות??

קישור לתוכן
שתף באתרים אחרים

יודע קצת VB .....

אני מחפש איזשהו סקריפט , עדיף תוכנה

אתה יכול "להעתיק" את הבתים של הקבצים+השמות לקובץ הEXE עצמו(ליצור מערכים על סגמנט הDATA אולי) ולכתוב אותם לדיקס כשתצטרך.

אה?? ובעברית מה זה אומר ? ליצור קובץ חדש באסמבלר??
קישור לתוכן
שתף באתרים אחרים

לא בהכרח באסמבלי. אתה יכול (בC לדוגמא) ליצור מערך "גלובאלי"("מעל הMAIN) שיכיל את הערכים.

אם זה VB אתה יכול אולי להשתמש במערך גדול של בתים(אני לא יודע בידיוק מה המגבלה) ולשים שם את הערכים.

קישור לתוכן
שתף באתרים אחרים

דוגמא פשוטה:


#include <stdio.h>

char bla[] = "hello world";

int main()
{
FILE *fp;
fp = fopen("your-file1.exe", "wb");
fwrite(bla, sizeof(char), strlen(bla), fp);
fclose(fp);

return 0;
}

במקום הhelloworld תרשום את הבתים של הקובץ המקומפל שאתה רוצה לפרוש, ובמקום ה- strlen תרשום את הגודל של הקובץ בבתים.

קישור לתוכן
שתף באתרים אחרים

כל קובץ לאחר הקימפול מכיל את המידע של קובץ הEXE עצמו. ההצעה שלי היא לקחת את הבתים האלה(אתה יכול להעתיק אותם מהNOTEPAD מיצידי) ולהדביק אותם בקוד של התוכנה.דוגמא פשוטה:

עריכה:

משהו שבניתי עכשיו:


#include <stdio.h>


int main(int argc, char *argv[])
{
int buff;
int n = 0;
FILE *fp1;
FILE *fp2;
if(argc != 3)
{
printf("Bad Input\n");
return 1;
}

fp1 = fopen(argv[1], "rb");
if(fp1==NULL)
{
printf("Bad Input File");
return 1;
}

fp2 = fopen(argv[2], "wt");
if(fp2==NULL)
{
printf("Bad Output File");
return 1;
}

fprintf(fp2, "int file1[] = {");
while(fread(&buff, sizeof(int), 1, fp1) > 0)
{
fprintf(fp2, "%d%s", buff, (!feof(fp1))?(", "):"");
n++;
}
fprintf(fp2, "};\nint file1s = %d;", n);

}


#include <stdio.h>
//copy output of prev program into here
int main()
{
FILE *fp;
fp = fopen("your-file1.exe", "wb");
fwrite(file1, sizeof(int), file1s, fp);
fclose(fp);

return 0;
}

קישור לתוכן
שתף באתרים אחרים

שוב אחי ,

אני לא מבין למה אתה מתכוון שאתה אומר בתים ?

למה אתה מתכוון? להציג את הקובץ ב-Hex Editor או מה ?

וד"א ,

ב- AutoIt צריך לשלב את הקובץ EXE שיש לי יחד עם הקובץ EXE החדש שנוצר ... מה זה נותן לי ? אני רוצה קובץ אחד.

IExpress יוצר לי קובץ של Self Extracted אז לא עשיתי בזה כלום , מה שיוצא זה שאני יוצר קובץ Self Extrated לקובץ self extracted שכבר יש לי

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...