نمایش نتایج 1 تا 7 از 7

نام تاپیک: ادغام واقعی دو فایل اجرایی

  1. #1

    Question ادغام واقعی دو فایل اجرایی

    سلام دوستان.
    سوالی که داشتم من میام با کد copy /b file1.exe + file2.exe c.exe result.exe دو فایل اجرایی رو با هم ادغام میکنم اما مشکل اینه که فایلها ادغام میشوند اما فقط فایل اول اجرا میشه و با به انتها رسیدن برنامه اول کنترل به سیستم عامل بازمیگردد و برنامه دوم اجرا نمیشود.آیا راهی هست کنترل به سیستم عامل بازنگردد و برنامه دوم هم اجرا گردد؟(تو فروم هم سرچ کردم اما هیچکدوم کاربردی نبودن).
    ممنونم

  2. #2

    نقل قول: ادغام واقعی دو فایل اجرایی

    نقل قول نوشته شده توسط limpizik مشاهده تاپیک
    سلام دوستان.
    سوالی که داشتم من میام با کد copy /b file1.exe + file2.exe c.exe result.exe دو فایل اجرایی رو با هم ادغام میکنم اما مشکل اینه که فایلها ادغام میشوند اما فقط فایل اول اجرا میشه و با به انتها رسیدن برنامه اول کنترل به سیستم عامل بازمیگردد و برنامه دوم اجرا نمیشود.آیا راهی هست کنترل به سیستم عامل بازنگردد و برنامه دوم هم اجرا گردد؟(تو فروم هم سرچ کردم اما هیچکدوم کاربردی نبودن).
    ممنونم
    سلام
    تا اون جایی که من اطلاع دارم هر برنامه ای پس از پایان کار یک فراخوانی سیستمی را به منظور اعلام اتمام کار خودش صدا میزنه (در سیستم عاملی مثل داس از یک روتین وقفه برای این کار استفاده میشده). بعد کنترل به سیستم عامل برمیگرده. وقتی دو تا برنامه رو ادغام کنید پس از پایان کار برنامه اول کنترل به سیستم عامل برمیگرده.
    اگر بخواهید واقعا دو فایل اجرایی رو ادغام کنید باید زبان اسمبلی یاد بگیرید و خودتون این کار رو انجام بدید.
    راه حل دیگه استفاده از ترم افزارهایی مثل Exe Joiner است (البته خودم امتحان نکردم ولی فکر کنم کارتون رو راه بندازه)
    اما شما میتونید یک فایل bat ایجاد کنید و کد های زیر را داخل اون وارد کنید تا دو برنامه به صورت ترتیبی اجرا شوند :


    @echo off
    start "" "File1.exe"
    start "" "File2.exe"

  3. #3

    نقل قول: ادغام واقعی دو فایل اجرایی

    ممنونم از پاسختون.
    بایندرها معمولا یه فایل stub دارن که دو برنامه رو در ریسورس خودشون قرار میدن و بعد از اجرا دو فایل را در پوشه ای مثل تمپلیت ویندوز منتقل میکنند و اجرا میکنند.که عملا به این کار نمیشه گفت ادغام.
    شما اطلاع دارید چجوری میشه دستوراتی که کنترل رو به سیستم عامل برمیگردونند حذف کرد و به جاش NOP صادر کرد؟

  4. #4

    نقل قول: ادغام واقعی دو فایل اجرایی

    نقل قول نوشته شده توسط limpizik مشاهده تاپیک
    ممنونم از پاسختون.
    بایندرها معمولا یه فایل stub دارن که دو برنامه رو در ریسورس خودشون قرار میدن و بعد از اجرا دو فایل را در پوشه ای مثل تمپلیت ویندوز منتقل میکنند و اجرا میکنند.که عملا به این کار نمیشه گفت ادغام.
    شما اطلاع دارید چجوری میشه دستوراتی که کنترل رو به سیستم عامل برمیگردونند حذف کرد و به جاش NOP صادر کرد؟
    خواهش میکنم.
    اگر واقعا به این کار علاقمند هستید سراغ نرم افزار olleydbg بروید. این نرم افزار یک Disassembler حرفه ای برای نرم افزارهای ویندوزیه و معمولا برای کرک کردن
    نرم افزارها ازش استفاده میکنن.
    این برنامه رو یکی از دوستانم به من معرفی کرده بود. راستش منم بدم نمیاد باهاش کار کنم.
    راهی که به نظر من معقول میرسه اینه که شما یک برنامه خالی
    int main() {return 0;}

    با ویژوال سی پلاس پلاس بنویسید و بعد با این برنامه اون رو Disassemble کنید. طبعا دستورات اسمبلی که به شما نمایش میده یک راه کاری رو پیش روی شما قرار میده.
    شما میتونید از این روش استفاده کنید. اما به نظر من باید به نحوه (کد) شروع برنامه و برچسب های برنامه هم توجه کنید تا بتونید برنامه دوم رو بلا فاصله بعد از برنامه اول شروع کنید بدلیل اینکه برنامه های زبان (خانواده) سی از تابع main آغاز بکار میکنند ولی ممکنه تو برنامه شما پیش از این تابع توابعی نوشته شده باشند. مثلا:
    int SUM(int A, int B)
    {
    return A+B;
    }
    int main()
    {
    ...
    }

    که البته می طلبه که یک jmp به دستورات اضافه کنید. برچسب ها هم طبعا زمانی که شما دو برنامه رو ادغام میکنید دچار تغییراتی میشوند مثلا آدرس 1000 در برنامه دوم با آدرس 1000 در برنامه ادغام شده جدید معنی متفاوتی میده.
    اگر به مشکل برخوردید اطلاع بدید (من هم امتحان کنم)

  5. #5

    نقل قول: ادغام واقعی دو فایل اجرایی

    نقل قول نوشته شده توسط limpizik مشاهده تاپیک
    سلام دوستان.
    سوالی که داشتم من میام با کد copy /b file1.exe + file2.exe c.exe result.exe دو فایل اجرایی رو با هم ادغام میکنم اما مشکل اینه که فایلها ادغام میشوند اما فقط فایل اول اجرا میشه و با به انتها رسیدن برنامه اول کنترل به سیستم عامل بازمیگردد و برنامه دوم اجرا نمیشود.آیا راهی هست کنترل به سیستم عامل بازنگردد و برنامه دوم هم اجرا گردد؟(تو فروم هم سرچ کردم اما هیچکدوم کاربردی نبودن).
    ممنونم
    کاری که شما کردین فایل دوم رو به عنوان overlay(در ارتباط با ساختار فایل PE مطالعه کنید) به فایل اول اضافه میکنه،در ویندوز هر برنامه اجرایی برای اجرا شدن نیاز به ایجاد پروسه داره چون شما به انتهای برنامه اول بافر رو اضافه کردید در ساختار PE نادیده گرفته میشه و ویندوز فقط یک پروسه ایجاد میکنه، برای همین قابلیت اجرایی نداره، پس باید دو پروسه ایجاد کنید یا با روش fork (حالت خاصی!) روی همان پروسه یا پروسه دیگر اجراش کنید، پس در کل میتونید یک پروسه داشته باشید که بعد از اتمام کارش پروسه دوم رو اجرا کنه یا دو پروسه داشته باشین که موازی یا سری اجرا شود.
    کاری که شما می خوای انجام بدی نوشتن بایندر هست،که میتونید برنامه سوم رو خودتون بنویسید که اونا رو در داخل خودش به عنوان ریسورس داشته باشه بعد createProcess کنید یا Fork(Runpe) استفاده کنید.

    استفاده سوء از این اطلاعات برعهده اینجانب نمیباشد.
    موفق باشید.

  6. #6

    نقل قول: ادغام واقعی دو فایل اجرایی

    نقل قول نوشته شده توسط xman_1365_x مشاهده تاپیک
    کاری که شما کردین فایل دوم رو به عنوان overlay(در ارتباط با ساختار فایل PE مطالعه کنید) به فایل اول اضافه میکنه،در ویندوز هر برنامه اجرایی برای اجرا شدن نیاز به ایجاد پروسه داره چون شما به انتهای برنامه اول بافر رو اضافه کردید در ساختار PE نادیده گرفته میشه و ویندوز فقط یک پروسه ایجاد میکنه، برای همین قابلیت اجرایی نداره، پس باید دو پروسه ایجاد کنید یا با روش fork (حالت خاصی!) روی همان پروسه یا پروسه دیگر اجراش کنید، پس در کل میتونید یک پروسه داشته باشید که بعد از اتمام کارش پروسه دوم رو اجرا کنه یا دو پروسه داشته باشین که موازی یا سری اجرا شود.
    کاری که شما می خوای انجام بدی نوشتن بایندر هست،که میتونید برنامه سوم رو خودتون بنویسید که اونا رو در داخل خودش به عنوان ریسورس داشته باشه بعد createProcess کنید یا Fork(Runpe) استفاده کنید.

    استفاده سوء از این اطلاعات برعهده اینجانب نمیباشد.
    موفق باشید.
    بسیار ممنون از کمکتون دوست من.
    سورس نمونه موجود دارید شما؟

  7. #7

    نقل قول: ادغام واقعی دو فایل اجرایی

    نقل قول نوشته شده توسط limpizik مشاهده تاپیک
    بسیار ممنون از کمکتون دوست من.
    سورس نمونه موجود دارید شما؟
    این تاپیک با اسمبلی ارتباطی نداره، بهتر هست در بخش مربوطه تاپیک ایجاد کنید(مثلا مهندسی مجدد و معکوس)!
    برای سورس و بیشتر از اون هم میتونید در گوگل جستجو کنید،بهتره قبل از اون در ارتباط با سیستم عامل ویندوز و برنامه نویسی سیستمی مطالعه کنید(مثلا سه کتاب windows internals , Windows via C/C++‎ , Windows System Programming).

    موفق باشید.

تاپیک های مشابه

  1. اجرای یک فایل اجرایی توسط VB.NET
    نوشته شده توسط Jamshid795 در بخش VB.NET
    پاسخ: 7
    آخرین پست: شنبه 03 مهر 1389, 16:30 عصر
  2. اتصال برنامه به یک فایل اجرایی
    نوشته شده توسط Vahab در بخش VB.NET
    پاسخ: 8
    آخرین پست: جمعه 23 آذر 1386, 22:43 عصر
  3. ادغام کردن دو فایل اجرایی
    نوشته شده توسط sadegi در بخش برنامه نویسی در 6 VB
    پاسخ: 12
    آخرین پست: پنج شنبه 26 خرداد 1384, 12:36 عصر
  4. ادغام دو فایل اجرایی با هم .(فوق العاده فوری)
    نوشته شده توسط majid_borland در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: جمعه 31 مرداد 1382, 01:55 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •