PDA

View Full Version : اجراي كد از خارج برنامه از داخل فايل text



علیرضا110
پنج شنبه 12 شهریور 1394, 13:47 عصر
سلام به دوستان عزيزم

يك سوال داشتم خيلي هم سرچ كردم پيدا نكردم

چطور مي توان يك كد دلفي كه در يك فايل txt در خارج برنامه است را اجرا كرد وخود كد بيروني اجرا شود؟
البته فرا خواني فايلها را مي دانم
فقط مي خواهم بدونم آيا امكان داره مثلا يك string را تبديل به كد كرد واجراش نمود چطوري ؟

حتي يك راهنمايي كوچيك خيلي كمك ميكنه

با تشكر فراوان :متفکر:

یوسف زالی
پنج شنبه 12 شهریور 1394, 15:51 عصر
سلام.
بهتره قبلش جستجو کنید،
انباری تالار رو هم برای همین کارها درست کردیم.

می تونید از اسکریپت انجین هایی نظیر هیدرا استفاده کنید. -> RemObjects

علیرضا110
شنبه 25 مهر 1394, 14:28 عصر
با سلام مجدد
ضمن تشكر از شما
آيا امكان داره بشود با كد نويسي اين كار ارانجام داد مثلا از طريق SendMessage

واينكه براي اينكار ازكامپوننت PaxCompiler يا fast استفاده كردم ولي حجم فايل اجراييم را بالا ميبره حدود 2 مگ (چون يك تيكه كد كوچك را ميخواهم تبديل كنم)

اگر راه حل بهتري داريد بفرماييد

یوسف زالی
شنبه 25 مهر 1394, 15:38 عصر
تکه کد کوچکتون از قبل بازه مشخصی داره؟ مثلا 5 6 حالت بیشتر نیست؟ اگر این طوره براش case بنویسید.
اگر نمی دونید چی رو باید ران کنید، یک خط و هزار خط فرقی نداره.

علیرضا110
یک شنبه 26 مهر 1394, 13:55 عصر
با تشكر از دوست عزيزم
آيا با call كردن ميشه يك كارايي انجام داد؟
بازم ممنون

یوسف زالی
یک شنبه 26 مهر 1394, 14:04 عصر
منظور شما از کال کردن چیه؟
بالاخره باید متنی تبدیل بشه به کد اجرایی یعنی اینکه کامپایل بشه. در غیر اینصورت اگر تعداد محدود هست با چند تا پروسیجر سروتهش هم میاد.

علیرضا110
یک شنبه 26 مهر 1394, 14:08 عصر
بازم تشكر

پس بجز كامپوننت ها راهي ديگه نيست؟

یوسف زالی
یک شنبه 26 مهر 1394, 14:43 عصر
کامپوننت هم برای ساده سازی نوشته شده وگر نه همین جوری هم می تونید این کار رو کنید، البته با کدنویسی و دانش زیاد.
اگر کدهاتون رو از قبل کامپایل کرده باشید، یعنی به صورت دی ال ال باشه، بصورت پلاگین خیلی ساده تر می تونید باهاش کار کنید، کامپوننت خاصی هم نیاز نداره.

علیرضا110
یک شنبه 26 مهر 1394, 16:22 عصر
يعني اگر يك استرينگ داخل dll باشه مي توانيم به صورت كد دريافتش كنيم
يا منظورتون فقط خود توابعي است كه اكسپورت مي كنيم؟


با اين جور كدها ميشه اين كار راكرد؟
[PASCAL]Module := Pointer(GetModuleHandle(nil));
Size := PImageOptionalHeader(Pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
VirtualFreeEx(ProcessHandle, Module, 0, MEM_RELEASE);
NewModule := VirtualAllocEx(ProcessHandle, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(ProcessHandle, NewModule, Module, Size, BytesWritten);
CreateRemoteThread(ProcessHandle, nil, 0, EntryPoint, Module, 0, TID);CreateProcess(nil, 'notepad', nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);
{give it some time to wake up}
Sleep(500);
{and hijack it!}
GetWindowThreadProcessId(FindWindow('Notepad', nil), @PID);
ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
Inject(ProcessHandle, @Main);
CloseHandle(ProcessHandle);[/PASCAL


اگر اينطوري نيست لطفا يك اشاره اي يا مثالي بگذاريد تا متوجه مطلب بشوم
بازم ممنون از شما

یوسف زالی
یک شنبه 26 مهر 1394, 23:32 عصر
شدنشو می شه اما آنتی ویروس شهیدش می کنه. منظورم چیزی در مایه های همون اکسپورت بود.

علیرضا110
دوشنبه 27 مهر 1394, 08:54 صبح
اگه امكان داره يك مثال از اين كد بزاريد ؟ لطفا

یوسف زالی
دوشنبه 27 مهر 1394, 10:15 صبح
منظورتون کدوم کده؟
پلاگین؟
در اینصورت براش مثال در همین سایت زیاده.

علیرضا110
دوشنبه 27 مهر 1394, 11:35 صبح
كدي كه بشه يك string را به كد برگردوند واجرا كرد حالا به هر روشي كه مي دونيد بجزكامپوننت
شبيه اين
runscript( ShowMessage('ali'));

یوسف زالی
دوشنبه 27 مهر 1394, 12:08 عصر
نخیر. برای چنین کارهایی یا باید کامپایلر داشته باشید، به هر طریقی، امبد یا کنار برنامه، یا این که اینها رو به فرم معادل دستورات قابل فهم برای rundll32 بنویسید که خیلی خیلی دستتون بسته خواهد بود.

علیرضا110
سه شنبه 28 مهر 1394, 21:39 عصر
روش دانلود و استفاده از اين كامپوننت را مي دونيد RemObjects

واينكه اين كامپوننت هم حجم فايل اجرايي را مثل بقيه زياد ميكنه ؟

یوسف زالی
سه شنبه 28 مهر 1394, 22:54 عصر
به هر حال هر کامپوننتی بسته به میزان کد و ریسورس هاش جچم رو اضافه می کنه.
روشش در همین سایت قبلا بیان شده بود، در خود سایت سازنده هم راهنما های خوبی گذاشته شده.