PDA

View Full Version : ایجاد فایل eXe بوسیله یک فایل eXe دیگر (????)



DoctorJay
چهارشنبه 12 دی 1386, 22:35 عصر
ایجاد فایلهایی همچون فایلهای Bat, tXt, Dat و کلا فایلهای با محتوای متنی با دستور Open براحتی انجام میشه

من می خوام بدونم چجوری میشه یه فایل eXe یه فایل eXe دیگر را با محتوای کاملا متفاوت از فایل سازنده بوجود بیاره ؟

توضیح بیشتر :

یه فایل eXe داریم که کار آن ایجاد یک پوشه در ریشه ی درایو C میباشد

ما میخواهیم این فایل یک فایل eXe دیگر ایجاد کند که بطور مثال فقط یک پیغام روی صفحه نمایش دهد

اگه اطلاعی در این باره دارین منو راهنمایی کنید .

(من نمی خوام که فایل خودشو کپی کنه و حالا با چک کردن یه سری شرایط کار برنامه تغییر کنه

می خوام از اساس محتوای فایل eXe ایجاد شده با فایل اول متفاوت باشه )

noorsoft
پنج شنبه 13 دی 1386, 08:16 صبح
شما باید فایل اجرایی خود را بصورت Resource به برنامه اضافه کنید و بعد آنرا نصب و اجرا کنید
اگه توضیحات کافی نبود بگین بیشتر توضیح بدم

bobrus
پنج شنبه 13 دی 1386, 08:52 صبح
اگه میشه بیشتر توضیح بدین البته تو یه تاپیک دیگه هم در موردش خونده بودم ولی اونجام به جواب نرسیدن

DoctorJay
پنج شنبه 13 دی 1386, 10:35 صبح
قاعدتا همینم هست که اول باید ری سورس کرد بعد متن eXe جدید رو جایگزین سورس قبلی کرد

ولی چیزی که هست سورس برنامه ی ری سورسی که من دارم اونچیزیو که واسه انجام اینکار

باید در اختیار بذاره نمی ذاره .

البته برنامه های ری سورسی که من تاحالا دیدم اینجوری بوده !!

برنامه ی ری سورسی که دقیقا سورس برنامرو اونجوری که نوشته شده در اختیار ما بذاره

نیست یا حداقل من ندیدم.

سورس رو با دستورات بیسیک نشون نمیده . تکلیف چیه ؟؟

Mbt925
پنج شنبه 13 دی 1386, 23:41 عصر
این نمونه رو ببینید :

DoctorJay
جمعه 14 دی 1386, 10:09 صبح
جناب Mbt925 تشکر بخاطر این فایل

ولی باید عرض کنم که من این سورس رو بنام Create exe runTime داشتم

ایرادی که به این سورس برنامه وارده اینکه

بنظر من این برنامه انعطاف پذیری زیادی نداره ,

اگه شما برنامرو دیده باشین, در آخر فقط تونسته که یه پیغام نشون بده

منظورم اینکه برنامه یه بستری رو فراهم نکرده که

مثلا با تعریف تابع CreateXe بیاد و هرچیزی که بهش داده میشه رو بنویسه تو فایل

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

اگه بشه با این برنامه دستور Open, ShutDown, یا حتی وارد کردن API هارو به

یک eXe دیگه انجام بده اون موقع است که یه ابزار بدرد بخور در اختیار ماست

من دنبال برنامه ای با این قابلیت هستم

که درست مثل ایجاد فایلهای متنی قدرت مانور داشته باشه

Mbt925
جمعه 14 دی 1386, 17:15 عصر
یکی از لذت بخش ترین بخش های برنامه نویسی ، یافتن یه راه جدید برای انجام یه کاره جدیده.

من اون نمونه رو قرار دادم برای اینکه یه استارت برای شروع باشه ، اگه این نمونه ، تابعی که شما می خواستین رو داشت ، دیگه شما کاری برای انجام دادن نداشتین .

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

مبین رنجبر
جمعه 14 دی 1386, 17:31 عصر
یکی از لذت بخش ترین بخش های برنامه نویسی ، یافتن یه راه جدید برای انجام یه کاره جدیده.

من اون نمونه رو قرار دادم برای اینکه یه استارت برای شروع باشه ، اگه این نمونه ، تابعی که شما می خواستین رو داشت ، دیگه شما کاری برای انجام دادن نداشتین .

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

جناب mbt925 این حرفتون رو باید با طلا نوشت و زد روی سردر این سایت ..

DoctorJay
شنبه 15 دی 1386, 16:52 عصر
جناب mbt925 این حرفتون رو باید با طلا نوشت و زد روی سردر این سایت ..

خوب منم کاملا با هر دو تون موافقم

ولی من اونقدر حرفه ای نیستم که بتونم یه همچین کاری رو انجام بدم

اتفاقا همین الان که اومدم می خواستم این تاپیک رو بذارم که چجوری به اون سطح برسیم

که خودمون API استخراج کنیم و یا بدون استفاده از API ها و با کدهایی که با علم خودمون

اونارو نوشتیم , کارهایی که می خوایم رو انجام بدیم !!

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

کنه که !! درست نمی گم ؟؟

شاید اگه اسمبلی رو فول بلد بودم هیچوقت همچین سوالی رو مطرح نمی کردم ,

ولی ابزار کار من ویژوال بیسیکِ .

پس لطفا بجای اینکه راه و رسم برنامه نویسی و اصول کار رو تذکر بدین

بیاید منبع اطلاعاتی در این زمینه معرفی کنید یا یه سورس با توضیح کدهای اونو بذارید ......

safarydj
سه شنبه 02 بهمن 1386, 20:31 عصر
با سلام
من می خاستم یه ویروس بنویسم مثل برنامه شما اینکاره کردم
یه فایل exe رو یه جا هیدن کرده بودم بعد بزنامم اونو هر جا می خاست کپی می کردش...

DoctorJay
دوشنبه 08 بهمن 1386, 02:02 صبح
با سلام
من می خاستم یه ویروس بنویسم مثل برنامه شما اینکاره کردم
یه فایل exe رو یه جا هیدن کرده بودم بعد بزنامم اونو هر جا می خاست کپی می کردش...

این فایل مخفی که شما میگین کجا قرار گرفته ؟؟

توی خود فایل همراه باهاش دیگه ؟؟

من بوسیله ی شه OLE یه همچین کاریو کردم و دارم روش کار می کنم .........

bobrus
سه شنبه 09 بهمن 1386, 11:43 صبح
بالاخره این تاپیک به نتیجه نرسید؟ کسی پیدا نشد که بتونه یه فایل exe بسازه؟

Mr.Olympia
چهارشنبه 10 بهمن 1386, 06:41 صبح
سلام دوستان - فکر کنم منظور دوستمون اینه که مثلا مثل برنامه Magic PS یا کلا برنامه های ساخت سرور تروجان یه فایل EXE رو به صورت سفارشی درست کنه مثل همون سروری که با ماجیک درست میشه و کاربر خودش از توی برنامه ماجیک تعیین میکنه که فایل سرور (همون فایل EXE) باید چه خصوصیاتی داشته باشه....

ولی واقعا اگر کسی پیدا شد همچین کاری بلده به ما هم بگه که خیلی مشتاقیم !!!

DoctorJay
چهارشنبه 01 خرداد 1387, 12:24 عصر
این تاپیک هنوز به نتیجه نرسیده .

برنامه های ساخت ویروس دیدم که کارایی که کاربر می خواد تعیین میشه به همراه آیکون ,

و بعد eXeیه اونو میسازه !!

مشابهش رو میشه ساخت ؟؟

H4i0 ACP
چهارشنبه 01 خرداد 1387, 14:41 عصر
سلام
منظور شما دقیقا از ساخت فایل EXe چیه ؟
اگر مثلا شما می خواید یه برنامه جدید بسازید ( مثل Pic2Exe ) می تونید از فایل های link.exe+debuge.exe استفاده کنید .کافیه سورس یه برنامه رو داشته باشید ( مثلا اسمبلی یا وی بی ) بعد از اون ، فایل exe بسازید .

DoctorJay
چهارشنبه 01 خرداد 1387, 15:48 عصر
طریقه ی ساخت فایل eXe با Assembly رو تا یه حدی بلدم .

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

این کدا از کجا به دست میاد !؟ و اینکه کدای ویژواله !! چجوری بوسیله ی یه ابزار دیگه eXeش کنیم !!

mahdiele
شنبه 14 فروردین 1389, 01:32 صبح
سلام
بنده يك برنامه تو ويژال نوشتم حالا ميخوام اون را به يك فايل اجرايي تبديل كنم يعني اينكه مثل همه نرم افزارها يك shortcut از برنامه را روي دسكتاپ ودوي در نوار start باشه مثلا مثل jetAudio كه كاربر هر وقت خواست روي اون كليك كنه و برنامه باز بشه در ضمن برنامه ديتا بيس هم داره و ميخوام ديتابيس ها هم با خود برنامه هنگام نصب روي سيستم ميزبان انتقال پيدا كنه وچون اگه آدرس ديتا بيسها تغير كنه و با آدرس تو برنامه يكي نباشه برنامه كار نميكنه ا

pooya1072
شنبه 14 فروردین 1389, 02:35 صبح
با سلام ...
به نظرم میاد موضوع این تایپیک یه کم مبهمه.:متفکر:هنوز درست متوجه نشدم.یعنی می خواین یه فایل exe بسازین که با اجراش یه کاری رو انجام بده و در ادامه یه فایل exe دیگه که کارش با فایل اول فرق می کنه رو بیاد کپی کنه وحالا اجراش کنه.تقریبا مثل یه تروجان.اگه اینه که بگین.یه راه حل براش دارم.:لبخند:
درست فهمیدم یا خیلی از مرحله پرتم..؟؟؟؟؟؟؟:گیج:

DoctorJay
شنبه 14 فروردین 1389, 11:03 صبح
سلام
بنده يك برنامه تو ويژال نوشتم حالا ميخوام اون را به يك فايل اجرايي تبديل كنم يعني اينكه مثل همه نرم افزارها يك shortcut از برنامه را روي دسكتاپ ودوي در نوار start باشه مثلا مثل jetAudio كه كاربر هر وقت خواست روي اون كليك كنه و برنامه باز بشه در ضمن برنامه ديتا بيس هم داره و ميخوام ديتابيس ها هم با خود برنامه هنگام نصب روي سيستم ميزبان انتقال پيدا كنه وچون اگه آدرس ديتا بيسها تغير كنه و با آدرس تو برنامه يكي نباشه برنامه كار نميكنه ا

به برنامه نویس (http://barnamenevis.org/forum/) خوش اومدی .

جای این پست اینجا نیست , لطفا یه تاپیک جدید تو صفحه ی اصلی با عنوان مناسب ایجاد کنید




با سلام ...
به نظرم میاد موضوع این تایپیک یه کم مبهمه.:متفکر:هنوز درست متوجه نشدم.یعنی می خواین یه فایل exe بسازین که با اجراش یه کاری رو انجام بده و در ادامه یه فایل exe دیگه که کارش با فایل اول فرق می کنه رو بیاد کپی کنه وحالا اجراش کنه.تقریبا مثل یه تروجان.اگه اینه که بگین.یه راه حل براش دارم.:لبخند:
درست فهمیدم یا خیلی از مرحله پرتم..؟؟؟؟؟؟؟:گیج:

نه دوست عزیز زیادم پرت نیستی :چشمک:

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

فرض کنید که, یک فایل اجرا شده و یکسری کارهارو انجام میده, سپس یه فایل دیگه

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

دیگه کپی شده و کارهای جدیدی رو انجام بده .

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

در ساده ترین حالت] فکر کن که من میخوام با اجرای یک eXe
5تا eXe متفاوت کنار اون eXe بوجود بیاد . ولی با اختیار زمان بوجود اومدن و نوبتی و منظم

M.T.P
شنبه 14 فروردین 1389, 11:44 صبح
شما باید فایل های exe رو داخل ریسورس برنامه اصلی تون بزارین و با تابع زیر اونها رو استخراج کنین
دستکاری های لازم رو خودتون در کد زیر اعمال کنید.




Dim file1() As Byte
file1 = LoadResData(110, "CUSTOM")
Open App.Path & "\File2.exe" For Binary As #1
Put 1, , file1()
Close #1

DoctorJay
یک شنبه 15 فروردین 1389, 15:42 عصر
شما باید فایل های exe رو داخل ریسورس برنامه اصلی تون بزارین و با تابع زیر اونها رو استخراج کنین
دستکاری های لازم رو خودتون در کد زیر اعمال کنید.




Dim file1() As Byte
file1 = LoadResData(110, "CUSTOM")
Open App.Path & "\File2.exe" For Binary As #1
Put 1, , file1()
Close #1


اما این کدا به چه شکل و باید کجا قرار بگیره !

منظورم توی فراخوانی ریسورس .

مثلا کد نمایش یه پیغام چجوری نوشته بشه که بعد بشه به فایل eXe جدید منتقل بشه و عمل کنه !؟

M.T.P
یک شنبه 15 فروردین 1389, 20:21 عصر
کدی که نوشتم کد استخراج فایل های اجرایی ضمیمه شده در ریسورس هست.
دوست عزیز اگه فایل های اجرایی یا همون exeهایی که قراره از تو ریسورس استخراج شن و با اجرا شدن یه پیغام از پیش تعریف شده و مشخص رو به کاربر بدن که با کدی که دادم حل میشه مثلا فرض کنیم که قراره یه فایل اجرایی که تو ریسورس قرار دادیم پس از اجرا شدن برنامه اصلی روی سیستم مقصد پیاده شه ، اجرا شه و یه پیغام بده که آیا ویندوز نصب شده تو پارتیشن C هست یا پارتیشن دیگه...

سوال من اینه که این پیغام دادن یا هر عملکرد دیگه ای که قراره این فایل اجرایی داخل ریسورس انجام بدن ، پیغام خاص و از پیش تعریف شده ای هست یا بستگی به شرایط موجود در هنگام اجرا شدن برنامه اصلی در سیستم مقصد داره؟:متفکر:

M.T.P
یک شنبه 15 فروردین 1389, 20:28 عصر
یه فایل eXe داریم که کار آن ایجاد یک پوشه در ریشه ی درایو C میباشد

ما میخواهیم این فایل یک فایل eXe دیگر ایجاد کند که بطور مثال فقط یک پیغام روی صفحه نمایش دهد

اگه اطلاعی در این باره دارین منو راهنمایی کنید .

(من نمی خوام که فایل خودشو کپی کنه و حالا با چک کردن یه سری شرایط کار برنامه تغییر کنه

می خوام از اساس محتوای فایل eXe ایجاد شده با فایل اول متفاوت باشه )

خب شما باید دو تا فایل اجرایی با vb کامپایل کنی یعنی یه برنامه اصلی به منظور ایجاد یک پوشه در درایو C و یک برنامه یا فایل exe دیگه برای نشون دادن پیغام.
بعد برنامه دوم رو تو ریسورس برنامه اول در قسمت Custom قرار بدی و با کدی که در پست های قبلی گذاشتم فایل دوم رو در یک مسیر دلخواه استخراج کنی و با دستور Shell اجراش کنی...

فکر نمیکنم جایی از مسئله مبهم باشه:لبخندساده:

ehsan_soroosh
جمعه 28 مرداد 1390, 01:33 صبح
کدی که نوشتم کد استخراج فایل های اجرایی ضمیمه شده در ریسورس هست.
دوست عزیز اگه فایل های اجرایی یا همون exeهایی که قراره از تو ریسورس استخراج شن و با اجرا شدن یه پیغام از پیش تعریف شده و مشخص رو به کاربر بدن که با کدی که دادم حل میشه مثلا فرض کنیم که قراره یه فایل اجرایی که تو ریسورس قرار دادیم پس از اجرا شدن برنامه اصلی روی سیستم مقصد پیاده شه ، اجرا شه و یه پیغام بده که آیا ویندوز نصب شده تو پارتیشن C هست یا پارتیشن دیگه...

سوال من اینه که این پیغام دادن یا هر عملکرد دیگه ای که قراره این فایل اجرایی داخل ریسورس انجام بدن ، پیغام خاص و از پیش تعریف شده ای هست یا بستگی به شرایط موجود در هنگام اجرا شدن برنامه اصلی در سیستم مقصد داره؟:متفکر:

دوستان متاسفانه این تاپیک به نتیجه نرسیده ولی کار من گیر نتیجه این تاپیک شده و دقیقا من هم همچین برنامه ای باید بنویسم و اینکه پیغام دادن یا هر عملکرد دیگه ای که قراره این فایل اجرایی داخل ریسورس انجام بدن ، پیغام خاص و از پیش تعریف شده ای نیست و بستگی به شرایط موجود در هنگام اجرا شدن برنامه اصلی در سیستم مقصد داره؟
M.T.P عزیز لطفا کمک کنید .

IamOverlord
جمعه 28 مرداد 1390, 02:50 صبح
مثلا می شه FASM.EXE رو دانلود کنی، بعد برنامه ات بیاد FASM.EXE رو از Resource اش یه جایی کپی کنه، بعد بیای Code های Assembly دلخواهت رو بنویسی و تو شون از توابع API دلخواهت هم استفاده کنی، بعد Code هات رو داخل CODE.ASM ذخیره کنی کنار جایی که FASM.EXE رو اون جا کپی کردی، بعد از طریق Shell میای CODE.ASM رو می دی به FASM.EXE و ازش مثلا CODE.EXE رو می گیری.

ehsan_soroosh
جمعه 28 مرداد 1390, 03:23 صبح
ممنون از پاسختون .
راه آسونتری نیست که اسمبلی نویسی نباشه؟ آخه من بخاطر همین وی بی رو انتخاب کردم .

(برنامه ای رو میخواهیم که : کدهایی خاص رو که همه ثابتند و مثلا فقط یک خط اون با توجه به شرایط تغییر میکنه رو به یک برنامه دیگه بصورت exe تبدیل کنه )
ضمنا کدها به زبان ویژوال بیسیک هستند

محسن واژدی
جمعه 28 مرداد 1390, 06:36 صبح
(برنامه ای رو میخواهیم که : کدهایی خاص رو که همه ثابتند و مثلا فقط یک خط اون با توجه به شرایط تغییر میکنه

سلام علیکم
در صورت امکان مطلب را بازتر توضیح دهید، مثلا" چه خطی را مایلید تغییر دهید آیا آن خط نیز خود یک دستور است یا صرفا" یک رشته است

quiet_programmer
جمعه 28 مرداد 1390, 11:38 صبح
با سلام.

اینکار تو دات نت با استفاده از CodeDom Graph قابل پیاده سازیه. هرچند اینجا جاش نیست که من اینکار رو تو محیط دات نت توضیح بدم ولی میتونه کمکتون کنه تا ببینین که برای اینکه این قابلیت رو در vb6 داشته باشه باشین چیو باید جستجو کنین.

حالا اگه اجازه بدین من کد بزارم(کد C#).

فرض کنین ما کد زیر رو نوشتیم و میخواهیم هنگام اجرای برنامه این کد کامپایل بشه و فایل exeاش تولید بشه.

using System;
using System.Collections.Generic;
using System.Text;
namespace TestAppi
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.ReadLine();
}
}
}

خوب هم.نطور که مشاهده میکنین این یه فایل متنیه که شما میتونین حتی اونو بر اساس نیاز هنگام اجرای برنامه ایجادش کنین. فرض کنین همین فایلو ما تو مسیر d:\1.cs ذخیره کنیم. برای ایجاد فایل exe از این کد از کد زیر استفاده میکنیم. (رفنسهای System.CodeDom.Compiler و System.IO رو اضافه کنین)

public static bool CompileExecutable(String sourceName)
{
//Source file that you are compliling
FileInfo sourceFile = new FileInfo(sourceName);

//Create a C# code provider
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

//Create a bool variable for to to use after the complie proccess to see if there are any erros
bool compileOk = false;

//Make a name for the exe
String exeName = String.Format(@"{0}\{1}.exe",
System.Environment.CurrentDirectory, sourceFile.Name.Replace(".", "_"));

//Creates a variable, cp, to set the complier parameters
CompilerParameters cp = new CompilerParameters();

//You can generate a dll or a exe file, in this case we'll make an exe so we set this to true
cp.GenerateExecutable = true;

//Set the name
cp.OutputAssembly = exeName;

//Save the exe as a physical file
cp.GenerateInMemory = false;

//Set the compliere to not treat warranings as erros
cp.TreatWarningsAsErrors = false;

//Make it compile
CompilerResults cr = provider.CompileAssemblyFromFile(cp, sourceName);

//if there are more then 0 erros...
if (cr.Errors.Count > 0)
{
//A message box shows the erros that occured
MessageBox.Show("Errors building {0} into {1}" +
sourceName + cr.PathToAssembly);

//for each error that occured in the code make a separete message box
foreach (CompilerError ce in cr.Errors)
{
MessageBox.Show(" {0}" + ce.ToString());
}
}

//if there are no erros...
else
{
//a message box shows compliere results and a success message
MessageBox.Show("Source {0} built into {1} successfully." +
sourceName + cr.PathToAssembly);
}

//if there are erros...
if (cr.Errors.Count > 0)
{
//the bool variable that we made in the beggining is set to flase so the functions returns a false
compileOk = false;
}

//if there are no erros...
else
{
//we are returning a true (success)
compileOk = true;
}

//return the result
return compileOk;
}

اگه فراخوانی زیر از تابع بالا رو داشته باشیم، فایل exe تو مسیر d:\1.exe ایجاد میشه.

CompileExecutable("d:\\1.cs");

خیلی میبخشین که کد #C گزاشتم. ولی احساس کردم بتونه کارتون رو را بندازه. حداقل مزیتش شاید این باشه که بدونین چیو باید جستجو کنین. این کد رو به راحتی میتونین به کد vb.net تغییرش بدین و بخواین که کد vb رو براتون به فایل exe تبدیل کنه.

موفق باشین

محسن واژدی
جمعه 28 مرداد 1390, 14:23 عصر
Hi all, I am Lindsay. Like my says I ve joined the community just now. I am keen to participate and contribute to this forum. I am basically a very opinionated person and love debating. I am a fitness freak and also a golf enthusiast. I am also in to social service and I contribute 10% of my income to trusts that educates African and Indian poor kids. Nothing more.. looking forward to a happy time out here.

سلام علیکم
لطفا سوالتان را فارسی تایپ کنید، البته جای درخواست فوق در این انجمن هم نیست

موفق باشید

setroyd
جمعه 28 مرداد 1390, 15:23 عصر
دوست عزیز من منظور شمارو متوجه نمیشم که چی میخوای!؟ برداشت من اینه که شما میخای یه برنامه داشته باشه توش شروع به کد نوشتن کنی (داخل برنامه ی خودتو میگم ) و بعدش بیای این کدهارو مثل vb یا هر زبانی دیگه تبدیل به فایل اجرایی کنی ؟ درواقع شما میخوای compiler بسازی ؟

IamOverlord
جمعه 28 مرداد 1390, 15:33 عصر
سلام علیکم
لطفا سوالتان را فارسی تایپ کنید، البته جای درخواست فوق در این انجمن هم نیست

موفق باشید

این هایی که چند روزه میان تو سایت چرت و پرت می نویسن سوال ندارن، فکر می کنم Spam باشن.

IamOverlord
جمعه 28 مرداد 1390, 15:46 عصر
ببینید شما به نحوی دارید کامپایلر می سازید، پس باید بلد باشید با زبان مقصد یا لااقل نماد اون که اسمبلی هست کار کنید، من هم بهتون Flast Assembler رو پیشنهاد دادم. کامپایلر ها رو با تقریبا با هر زبانی می شه نوشت حتی VB6، فقط باید بلد باشید کد سطح بالای دلخواهتون رو به داده های باینری معنادار تبدیل کنید و بریزید توی یه فایل. Flast Assembler یه زبان Open Source هستش که با اسمبلی نوشته شده (و خودش رو با خودش می شه کامپایل کرد) من پیشنهاد می کنم اگه می خواید فقط با VB6 کارتون انجام شه برید کد Flat Assembler، ساختار فایل های exe. و Op-Code های Machine و برنامه نویسی سطح پایین رو یاد بگیرید، بعد می تونید بیاید مستقیما با VB6 یه فایل exe. تولید کنید با توابع API و تمام دستورات دلخواهتون که احرا بشه. ولی اگه هلو برو تو گلو بخواید این کار رو بکنید باید با net. بکنید تازه اون هم فایل exe. برای net. می سازه، البته با VB6 هم می تونید برنامه ی net. فایل اجرایی تولید کنید، حتی نسبتا راحت تر از تولید فایل اجرایی غیر net.، فقط باید Assembly های net. رو بلد باشید. می تونید برای کنجکاوی با #Dis برنامه های net. رو Decompile کنید و Assembly شون رو ببینید، جالب این جاست حتی اسم متغیر ها رو هم می تونید ببینید. البته شاید بعضی برنامه های net. محافظت شده رو نشه به این راحتی Decompile کرد. ...

ehsan_soroosh
شنبه 29 مرداد 1390, 00:09 صبح
باتشکر از همه دوستان فکر کنم همینطور که شما میگید باشه و برنامه باید اون یک خط رو کامپایل کنه به زبان ماشین و فکر کنم اینطوری باید کامپایلر بسازم :متعجب: . خوب البته باید یکسری از دستوراتی که ممکنه در خط متغییر استفاده بشن رو شناسایی کنم و اونها رو به اسمبلی تبدیل کنم که در برنامه داشته باشم و ...؟ بقیش رو نمیدونم .


سلام علیکم
مثلا" چه خطی را مایلید تغییر دهید آیا آن خط نیز خود یک دستور است یا صرفا" یک رشته است

سلام محسن عزیز
اگر رشته بود که مشکل حل بود و از یک exe کپی میگرفتیم و اون exe از یک فایل متنی که هر بار تغییرش میدادیم برنامه را میخوندیم و اینجوری مشکل خط متغییرمون حل میشد ولی مساله این هست که اون خط خود یک دستور است . دستوری یا ... در ویژوال بیسیک داریم که مثلا یک خط دستوری رو از داخل فایلی بخونه و اونو اجراش کنه ؟ اینجوری یک خط دستوری متغییر در برنامه داریم.( کامپایلر بیسیک رو نمیشه یکجوری در برنامه یا کنار برنامه بعد از نصب گذاشت و واسه اون یک خط استفاده کرد؟)

setroyd
شنبه 29 مرداد 1390, 12:50 عصر
نه نمیشه اصلان نمیشه ببین کامپایلر یه بحث کاملا جدا داره و نیاز دانش کامل از یک زبان هت زیاد نرو دنبالش چون الان واست زوده شاید بتونم به جرات بهت بگم که تمام کسانیکه تو بخش vb هستن حتی یکیشونم نمیتونه با vb یه compilder بسازه پس زیاد نرو دنبالش بزار هرچی به موقع خودش :چشمک:

IamOverlord
شنبه 29 مرداد 1390, 16:43 عصر
نه نمیشه اصلان نمیشه ببین کامپایلر یه بحث کاملا جدا داره و نیاز دانش کامل از یک زبان هت زیاد نرو دنبالش چون الان واست زوده شاید بتونم به جرات بهت بگم که تمام کسانیکه تو بخش vb هستن حتی یکیشونم نمیتونه با vb یه compilder بسازه پس زیاد نرو دنبالش بزار هرچی به موقع خودش :چشمک:

چرا، من با VB6 یه کامپایلر 16bit فارسی ساختم، ولی پشیمون شدم و ادامش ندادم چون فارسی بودنش بیشتر دردسر بود تا مزیت! ولی الان هم دارم یه کامپایلر 32bit شبیه VB6 می نویسم، برای Windows Programming البته الان دیگه بیشتر IDE اش رو با VB6 طراحی می کنم؛ و دانش ساخت کامپایلر رو هم دارم و می تونم کمکتون کنم ولی اینی که می خواید بسازید دانش زیادی در زمینه ی ساخت کامپایلر نمی خواد، چون هدف اصلی شما اصلا این نیست و با خیلی از مسائل مثل درخت تجزیه ی نحوی و تحلیل لغوی و ... درگیر نمی شید.

محسن واژدی
شنبه 29 مرداد 1390, 17:12 عصر
سلام محسن عزیز
اگر رشته بود که مشکل حل بود و از یک exe کپی میگرفتیم و اون exe از یک فایل متنی که هر بار تغییرش میدادیم برنامه را میخوندیم و اینجوری مشکل خط متغییرمون حل میشد ولی مساله این هست که اون خط خود یک دستور است . دستوری یا ... در ویژوال بیسیک داریم که مثلا یک خط دستوری رو از داخل فایلی بخونه و اونو اجراش کنه ؟ اینجوری یک خط دستوری متغییر در برنامه داریم.( کامپایلر بیسیک رو نمیشه یکجوری در برنامه یا کنار برنامه بعد از نصب گذاشت و واسه اون یک خط استفاده کرد؟)

سلام علیکم
اینگونه که بنده از توضیحاتتون برداشت کردم، میخواهید یک دستور نوشته شده را در run-time اجرا کنید، اگر اینطور است میتوانید از کنترل Microsoft Script Control
استفاده کنید، این کنترل یک دستور نوشته شده در زمان اجرا را پردازش و اجرا میکند

موفق باشید

IamOverlord
شنبه 29 مرداد 1390, 17:30 عصر
سلام علیکم
اینگونه که بنده از توضیحاتتون برداشت کردم، میخواهید یک دستور نوشته شده را در run-time اجرا کنید، اگر اینطور است میتوانید از کنترل Microsoft Script Control
استفاده کنید، این کنترل یک دستور نوشته شده در زمان اجرا را پردازش و اجرا میکند

موفق باشید

نمی خواهند در Run-time اجرا کنند، می خواهند فایل exe. تولید کنند.

setroyd
شنبه 29 مرداد 1390, 21:19 عصر
این کار بازم میگم نیاز به دانش زیادی تو این زمینه داره .

IamOverlord
یک شنبه 30 مرداد 1390, 02:25 صبح
شما کافیه به زبان Assembly کد نوشتن و معادل نماد های Assembly در زبان Machine رو بلد باشی : OpCode of Intel Assembly x86 Instructions (http://www.jegerlehner.ch/intel/IntelCodeTable.pdf)

ehsan_soroosh
یک شنبه 30 مرداد 1390, 22:02 عصر
سلام علیکم
اینگونه که بنده از توضیحاتتون برداشت کردم، میخواهید یک دستور نوشته شده را در run-time اجرا کنید، اگر اینطور است میتوانید از کنترل Microsoft Script Control
استفاده کنید، این کنترل یک دستور نوشته شده در زمان اجرا را پردازش و اجرا میکند

موفق باشید


میشه بیشتر توضیح بدید یا یک مثال بزنید ؟

IamOverlord
یک شنبه 30 مرداد 1390, 23:52 عصر
میشه بیشتر توضیح بدید یا یک مثال بزنید ؟

An initial look at the Microsoft Scripting Control (http://www.avdf.com/feb99/art_vb005.html)

برو حالشو ببر! :گیج:

setroyd
دوشنبه 31 مرداد 1390, 04:53 صبح
این کارش اون چیزی نیست که فکنم دوستمون میخواد !

IamOverlord
دوشنبه 31 مرداد 1390, 16:54 عصر
فکر کنم در آخرین پست در مورد Microsoft Scripting Control می خواستن همراه با یه مثال.

setroyd
سه شنبه 01 شهریور 1390, 00:15 صبح
بله مثالش هم جالب بود .

ehsan_soroosh
سه شنبه 01 شهریور 1390, 16:47 عصر
با اجازه دوستان یک تاپیک خوب در مورد ساخت کامپایلر : http://barnamenevis.org/showthread.php?301370 (http://barnamenevis.org/showthread.php?301370)
(- تجربه-در-اختراع-چرخ-ساخت-کامپایلر)

Veteran
پنج شنبه 03 شهریور 1390, 09:12 صبح
اقایون منم دنبال همچین چیزی بودم فقط توضیح من یکم فرق میکنه
من الان یک فرم دارم که درون این فرم یک کامند هست وقتی میخوام کلیک کنم روی این کامند برنامه برای من در یک مسیر خاص یک فرم که درون رویداد لود فرم که ایجاد شده هم یک کدی که ماها خودمون تعیین میکنیم باشه ایجاد کنه
حالا کسی بلده اموزش بده ؟

setroyd
پنج شنبه 03 شهریور 1390, 13:10 عصر
این هم بر میگرده به همون ساخت کامپایلر و کمی پیچیده تر شما میخای سورس یه exe رو دست کاری کنی به همین راحتی نیست که !

IamOverlord
پنج شنبه 03 شهریور 1390, 18:40 عصر
دوستمون setroyd (http://barnamenevis.org/member.php?183390-setroyd) درست می گن، قضیه به این سادگی ها نیست، شما ظاهرا یه Form ساده درست می کنی ولی هزار تا چیز دیگه رو هم باید درست کنی مثلا حلقه ی کنترل پیام پنجره، پاسخ گویی صحیح به رویداد ها و ... . که اگه MASM یا C رو برای برنامه نویسی Win32 بلد باشی بهتر می گیری چی می گم. حتی ساخت Form هم عین دستوراتی که توی Form می نویسید، دستور هست و با تابع API ساخته می شه.
اگر کامپایلر نوشتن برات دردسره و می خوای خیلی ساده کار کنی باید حداقل Assembler نوشتن رو بلد باشی، مگر این که بری از Assembler های دیگه استفاده کنی.
ولی من یه راهی به ذهنم رسیده، اگه بتونی با Microsoft Scripting Control یه رشته دستور رو اجرا کنی، می تونی خیلی راحت یه برنامه بنویسی که توش یه متغیر رشته ای باشه، بعد هر وقت خواستی دستورات رو تغییر بدی خیلی راحت تر می تونی مقدار اون متغیر رو در فایل exe. ات تغییر بدی.
یه راه دیگه هم دارم که فرقش با بالایی اینه که به جای Microsoft Scripting Control از دستورات Assembly که در متغیر رشته ای قرار می گیرند استفاده کنی. که این امکان در VB6 هست. یه نمونه برات می ذارم که اینو قبلا جناب pcdownload هم گذاشته بود.