PDA

View Full Version : تبدیل یه پروژه exe به بایت



saeid12
پنج شنبه 15 اسفند 1387, 08:48 صبح
سلام
من میخواستم ببینم امکان داره یه پروژه کوچیک exe رو به صورت بایتی بریزم تو یه text که بعد دوباره بتونم برشگردونم به حالت اولش(مثل ارسال مقدار یه برنامه از طریق یاهو یا ... به سرور و کامپیوتر طرف مقابل) با این اختلاف که اینجا سرور وجود نداره و همچی داخل یه text ذخیره میشه.؟

Babak.Hassanpour
پنج شنبه 15 اسفند 1387, 18:50 عصر
یه برنامه آقا نیما از بچه های آشیانه نوشته بود که فایل اجرای رو توی یه فایل متنی جاسازی می کرد.اسم برنامه exe2txt بود فکر کنم هنوزم تو آشیانه باشه.
ببخش من همین به ذهنم رسید.اگه منظورت چیز دیگه ای بود واضح تر توضیح بده درخدمتم

xxxxx_xxxxx
پنج شنبه 15 اسفند 1387, 21:39 عصر
:متفکر::متفکر::متفکر:
خب با دستورات خواندن و نوشتن در فايل خيلي راحت ميشه اين كارو كرد.
فايل رو به صورت binary باز مي كنيد. با دستور get محتوياتش رو مي خونيد بعد تو يه فايل متني ذخيرش مي كنيد.
براي نوشتن هم به همين صورت فايل متني رو با دستور get مي خونيد تو يك متغير قرار ميديد و بعد با دستور put ذخيرش مي كنيد تو يه فايل exe

saeid12
پنج شنبه 15 اسفند 1387, 23:20 عصر
فايل رو به صورت binary باز مي كنيد. با دستور get محتوياتش رو مي خونيد بعد تو يه فايل متني ذخيرش مي كنيد.
براي نوشتن هم به همين صورت فايل متني رو با دستور get مي خونيد تو يك متغير قرار ميديد و بعد با دستور put ذخيرش مي كنيد تو يه فايل exe
دوستان مرسی که جواب دادن
ولی من همین get و put رو میخوام یاد بگیرم میشه یه ضمیمه یا سرسی برام بزارید؟
خیلی مهمه.

xxxxx_xxxxx
جمعه 16 اسفند 1387, 10:35 صبح
از put و get فقط زماني ميشه استفاده كرد كه فايل رو به صورت Binary باز كنيم:

فايل اجراي رو مي خونيم و محتوياتش رو تو متغير S قرار ميديم:


Dim S As String
S = Space(FileLen(App.Path & "\" & App.EXEName & ".exe"))
Open App.Path & "\" & App.EXEName & ".exe" For Binary Access Read As #1
Get #1, , S
Close #1

دقت كنيد كه طول S بايد به اندازه فايل اجرايي باشه. دستور دوم براي همينه.
S را درون يك فايل متني ذخيره مي كنيم:


Open "C:\Source.txt" For Binary Access Write As #1
Put #1, , S
Close #1
End Sub

حالا براي برگردوندن فايل متني به exe دوباره همين كارو انجام ميديم. يعني فايل متني رو مي خونيم و تو يك متغير قرار ميديم. بعد باز محتويات متغير رو در يك فايل اجرايي ذخيره مي كنيم.
موفق باشيد/

saeid12
جمعه 16 اسفند 1387, 13:09 عصر
از put و get فقط زماني ميشه استفاده كرد كه فايل رو به صورت Binary باز كنيم:

فايل اجراي رو مي خونيم و محتوياتش رو تو متغير S قرار ميديم:
کد:
Dim S As String
S = Space(FileLen(App.Path & "\" & App.EXEName & ".exe"))
Open App.Path & "\" & App.EXEName & ".exe" For Binary Access Read As #1
Get #1, , S
Close #1
دقت كنيد كه طول S بايد به اندازه فايل اجرايي باشه. دستور دوم براي همينه.
S را درون يك فايل متني ذخيره مي كنيم:
کد:
Open "C:\Source.txt" For Binary Access Write As #1
Put #1, , S
Close #1
End Sub
حالا براي برگردوندن فايل متني به exe دوباره همين كارو انجام ميديم. يعني فايل متني رو مي خونيم و تو يك متغير قرار ميديم. بعد باز محتويات متغير رو در يك فايل اجرايي ذخيره مي كنيم.
موفق باشيد/
سلام و تشکر فراوان
آقا میشه برگردوندن به حالت اولشم بزاری چون من نتونستم این کارو بکنم :(
بازم مرسی دوست من

ayub_coder
جمعه 16 اسفند 1387, 13:44 عصر
فقط به جای put از get استفاده می کنی کاری نداره که..:متعجب:

saeid12
جمعه 16 اسفند 1387, 14:02 عصر
فقط به جای put از get استفاده می کنی کاری نداره که..
خوب میشه شما بنویسی
من نوشتم جواب نگرفتم

xxxxx_xxxxx
جمعه 16 اسفند 1387, 14:34 عصر
:متفکر:


Dim S As String
S = Space(FileLen("C:\Source.txt"))
Open "C:\Source.txt" For Binary Access Read As #1
Get #1, , S
Close #1

Open "C:\Source.exe" For Binary Access Write As #1
Put #1, , S
Close #1
this is not programming
this is copy&paste

saeid12
جمعه 16 اسفند 1387, 14:46 عصر
Dim S As String
S = Space(FileLen("C:\Source.txt"))
Open "C:\Source.txt" For Binary Access Read As #1
Get #1, , S
Close #1

Open "C:\Source.exe" For Binary Access Write As #1
Put #1, , S

Close #1

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

xxxxx_xxxxx
جمعه 16 اسفند 1387, 14:55 عصر
براي من كه درسته.
به اين نمونه نگاه كنيد:

ayub_coder
جمعه 16 اسفند 1387, 14:56 عصر
آره دقیقا همین کدی که نوشتن


منم کدشو نوشتم میتونی استفاده کنی:تشویق:

saeid12
جمعه 16 اسفند 1387, 15:04 عصر
بازم تشکر
ولی کار نکرد پس ایراد از وی بی منه دوباره نصبش میکنم :)
مرسی

xxxxx_xxxxx
جمعه 16 اسفند 1387, 16:15 عصر
بازم تشکر
ولی کار نکرد پس ایراد از وی بی منه دوباره نصبش میکنم :)
مرسی
ما هم باور كرديم
دوست عزيز كوچكترين تغييري تو محتواي اون متغير باعث ميشه كه به كل برنامه اجرا نشه. حتي آيكن برنامه هم از بين ميره. اونوقت شما ميگيد كه كنترل هاي روي فرم از بين ميره! ساير دستورات از بين ميره! و فقط فرم خالي نشون داده ميشه!!!!!!!?؟
مشكل جاي ديگه‌ست. بعضي كاربراي اين بخش فقط سورس مي خواند و بس/:عصبانی:

REZADG
جمعه 16 اسفند 1387, 17:08 عصر
نه کلن فکر کنم این کار عملی نباشه میدونید چرا اگه برنامه رو با نوت پت باز کنی و در صفحهی جدید کد هاشو پیست کنی و باپسوند exe ذخیره کنی بازم باز نمیشه

saeid12
جمعه 16 اسفند 1387, 17:19 عصر
ما هم باور كرديم
دوست عزيز كوچكترين تغييري تو محتواي اون متغير باعث ميشه كه به كل برنامه اجرا نشه. حتي آيكن برنامه هم از بين ميره. اونوقت شما ميگيد كه كنترل هاي روي فرم از بين ميره! ساير دستورات از بين ميره! و فقط فرم خالي نشون داده ميشه!!!!!!!?؟
مشكل جاي ديگه‌ست. بعضي كاربراي اين بخش فقط سورس مي خواند و بس/
دوست عزیز من از ندونستن خجالت نمیکشم و هیچ اددایی ندارم و اونی گفتم واقعییت بود حالا باورش به خودت بستگی داره...
مثلا میخوای بگی عقل کلی. تازه وقتی یه کد هست که کارمو راه بندازه چرا خودم وقت بزارم واسه نوشتنش؟
من اینو میتونستم تو گوگل سرچ کنم و هزار تا مطلب گیر بیارم ولی دیدم تو اینجا مطلبی راجع به این نیست خواستم تایپیک بزنم که دیگران هم استفاده کنن.

xxxxx_xxxxx
جمعه 16 اسفند 1387, 17:33 عصر
نه کلن فکر کنم این کار عملی نباشه میدونید چرا اگه برنامه رو با نوت پت باز کنی و در صفحهی جدید کد هاشو پیست کنی و باپسوند exe ذخیره کنی بازم باز نمیشه
دوست عزيز شما برنامه رو كه ضميمه كردم اجرا كنيد ببينيد ميشه يا نه.
وقتي شما برنامه رو با notepad باز ميكنيد برنامه به صورت متني باز ميشه، نه باينري.
ولي تو برنامه اي كه ضميمه كردم فايل به صورت باينري خونده ميشه و به صورت باينري هم ذخيره ميشه. از اين بابت مشكلي نداره.
من عرض كردم، مشكل جاي ديگه است.


دیدم تو اینجا مطلبی راجع به این نیست خواستم تایپیک بزنم که دیگران هم استفاده کنن.

آها پس موضوع اينه... از اين عمل خيرخواهانه تون تشكر مي كنم. دست شما درد نكنه.

ayub_coder
جمعه 16 اسفند 1387, 23:38 عصر
دوست عزیز من این کد رو تست هم کردم و به درستی جواب داد بعد گذاشتم اینجا
چک کن ببین مشکلت کجاست؟