PDA

View Full Version : اجرای فایل اجرایی بر روی سرور از طریق کلاینت



piter1355
چهارشنبه 26 دی 1386, 09:31 صبح
سلام


<?php
popen('start '."calc.exe".'', 'r');
system(escapeshellcmd("calc.exe"));
?>


دو خط کدی که نوشتم دو بار ماشین حساب ویندوز را اجرا میکند .(البته روی لوکال هاست )
ولی روی سرور جواب نمیده ؟ فکر میکنم باید در حالت Safe mode باید اجرا بشه .

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

raravaice
چهارشنبه 26 دی 1386, 09:59 صبح
سلام
اگر سرورت ویندوزه و ماله خودته باید دسترسی Traverse Folder / Execute File رو به اکانت Network Service بدی و همچنین Everyone اگر نه که قیدشو بزن چون کسی چنین دسترسی بهت نمیده مگر اینکه شکمش سیر باشه.

موفق باشی

piter1355
چهارشنبه 26 دی 1386, 10:13 صبح
ممنونم .

سرور مال خودمونه . رو این سرور فایل های زیادی قرار داره .
این حرکت هکر ها رو خوشحال میکنه .

بررسی میکنم ببینم چی میشه .

piter1355
چهارشنبه 26 دی 1386, 11:28 صبح
سلام
اگر سرورت ویندوزه و ماله خودته باید دسترسی Traverse Folder / Execute File رو به اکانت Network Service بدی و همچنین Everyone اگر نه که قیدشو بزن چون کسی چنین دسترسی بهت نمیده مگر اینکه شکمش سیر باشه.

موفق باشی

متاسفانه جواب نداد . حتی فولدر و فایلهای مربوطه رو برای Everyone فول کنترل کردم . باز هم نشد . نمیدونم مشکل از چیه !

oxygenws
چهارشنبه 26 دی 1386, 11:36 صبح
php رو در چه حالتی اجرا می کنی؟؟ وب بیسد؟؟

raravaice
چهارشنبه 26 دی 1386, 11:46 صبح
سلام

حقیقتش من نمیدونم PHP تحت چه اکانتی اجرا میشه برای .net که networkservice هست و اولویت با اونه من خودم که شخصا برنامه روی سرور اجرا میکنم وقتی task میگیرم میبینم تحت این اکانت فعاله.

یه چیز دیگه.
اگر برنامه مورد نظرت برای اجرا تو مسیر ویندوز هست مثل مثال خودت باید به این پوشه هم permission بدی و گرنه فایل exe رو توی root خودت قرار بده تا access denid نگیری.

موفق باشی

piter1355
چهارشنبه 26 دی 1386, 21:36 عصر
php رو در چه حالتی اجرا می کنی؟؟ وب بیسد؟؟
ممنونم
بله پی اچ پی روی یک سرور ویندوز 2003 نصبه و از طریق کلاینتها بهش دسترسی اجرا داریم



یه چیز دیگه.
اگر برنامه مورد نظرت برای اجرا تو مسیر ویندوز هست مثل مثال خودت باید به این پوشه هم permission بدی و گرنه فایل exe رو توی root خودت قرار بده تا access denid نگیری.

موفق باشی
ممنونم فایل اجرایی مربوطه در روت کنار فایل پی اچ پی قرار داره .

oxygenws
چهارشنبه 26 دی 1386, 21:38 عصر
بعد انتظار داری از محیط وب بتونی یک برنامه گرافیکی رو اجرا کنی؟! نمیشه خوب!
برای این کار باید PHP رو به صورت CLI استفاده کنی که خوب ربطی به وب نداره.

piter1355
چهارشنبه 26 دی 1386, 21:42 عصر
بعد انتظار داری از محیط وب بتونی یک برنامه گرافیکی رو اجرا کنی؟! نمیشه خوب!
برای این کار باید PHP رو به صورت CLI استفاده کنی که خوب ربطی به وب نداره.

ممنونم
منطقی به نظر نمیرسه ؟ که از بروزر یک کلاینت بتونیم به واسطه پی اچ پی یک فایل اجرایی رو روی سرور اجرا کنیم ؟


باید یه تحقیقی راجع به CLI کنم . اگر لینکی مناسب راجع به داکیومنت CLI دارید ممنون میشم معرفی کنید .

oxygenws
چهارشنبه 26 دی 1386, 21:48 عصر
http://us3.php.net/features.commandline

oxygenws
چهارشنبه 26 دی 1386, 22:12 عصر
منطقی به نظر نمیرسه ؟ که از بروزر یک کلاینت بتونیم به واسطه پی اچ پی یک فایل اجرایی رو روی سرور اجرا کنیم ؟
چرا می رسه، ولی نه برنامهء گرافیکی.
دقیقا نمی دونم می خوای چیکار کنی، اما ممکنه توابع زیر به دردت بخورند:
http://www.php.net/manual/en/ref.com.php

piter1355
چهارشنبه 26 دی 1386, 22:36 عصر
چرا می رسه، ولی نه برنامهء گرافیکی.
دقیقا نمی دونم می خوای چیکار کنی، اما ممکنه توابع زیر به دردت بخورند:
http://www.php.net/manual/en/ref.com.php

ممنونم

من یه نرم افزار لوکالی نوشتم که از طریق پورت 80 قراره عملیاتی نظیر (ثبت نام . لاگین و ارسال اس ام اس و نگهداری اطلاعات بصورت دفترچه تلفن و غیره ) رو انجام بده . در واقع شما در نظر بگیر تا اینجای کار وب بیسه . حالا یه بانک اطلاعاتی Access داریم که تیبلی از اس ام اس هایی که قراره ارسال بشه رو درون خودش نگه میداره . ضمنا کارای امنیتی نظیر انکرایپ اطلاعات ارسالی هم انجام شده . تا اینجای کارو انجام دادم . حالا یه نرم افزار دیکه توی سرور باید حواسش باشه که اگه یه رکورد به تیبل اضافه شد فوری عملیات ارسال اس ام اس رو انجام بده . البته میتونم یه لوپ بنویسم که هر یک ثانیه تعداد رکورد های تیبل رو چک کنه . ولی این روش به نظرم منطقی نمیرسه و پروسس الکی راه میندازه . به این فکر افتادم که نرم افزاری کوچک بعد از ارسال اطلاعات اجرا بشه و عملیات ارسال اس ام اس رو انجام بده و بسته بشه . اگر دستوری که توی پست اول نوشتم توی سرور اجرا میشد با همین روش ادامه میدادم .
شاید اسکجول بتونه کمکم کنه . شاید هم نه .
البته به فکر استفاده از trigger هم افتادم. ببینم چیکار میتونم کنم.

oxygenws
چهارشنبه 26 دی 1386, 23:21 عصر
برنامهء ارسال اس ام اس گرافیکی است؟
قابلیت پذیرش ورودی از CLI رو نداره؟

musiox
پنج شنبه 27 دی 1386, 00:01 صبح
با چه زبانی می خوای بنویسی؟

piter1355
پنج شنبه 27 دی 1386, 07:59 صبح
برنامهء ارسال اس ام اس گرافیکی است؟
قابلیت پذیرش ورودی از CLI رو نداره؟

خوب یه GUI مربوط به خودش داره . مثل یه برنامه حسابداری یا دفترچه تلفن .

والا تا این لحظه نتونستم راجع به CLI تحقیق کنم . نمیدونم شاید هم داشته باشه .



با چه زبانی می خوای بنویسی؟

با وی بی 6 . البته وی بی 6 فقط GUI سمت یوزر رو تشکیل میده و وظیفه برقراری ارتباط با پی اچ پی های سمت سرور رو داره .

raravaice
پنج شنبه 27 دی 1386, 09:56 صبح
سلام

piter1355 (http://barnamenevis.org/forum/member.php?u=17785) عزیز
حرف oxygenws (http://barnamenevis.org/forum/member.php?u=4661) کاملا صحت داره شما برنامه ای که مینویسی اگر در سطح خط فرمان باشه میتونی ازش استفاده کنی من فکر میکردم این کارو کردی.
چون اکانت Network Service نمیتونه پنجره مربوط به برنامه شما رو باز کنه و فقط اونو در حافظه بار میکنه یا اصلا باز کنه شما چیکار میخوای باهاش بکنی.اگر هم برنامت به صورت خودکار یه سری کارهای خاص رو انجام میده با Consol کار کن تا برنامت در سطح خط فرمان اجرا بشه
شما تمام برنامت رو حتما و حتما باید به صورت Console بنویسی.

"من این کار رو بارها انجام دادم و بر اساس یه ایده تئوری نیست"

موفق باشی

oxygenws
پنج شنبه 27 دی 1386, 10:34 صبح
راه دیگه ای که داره اینه که برنامه ات رو به صورت «سرور» بنویسی و یک سوکت باز کنی وتقریبا یه چیزی شبیه یک وب سرویس روش ارایه بدی :)

musiox
پنج شنبه 27 دی 1386, 10:59 صبح
با .net کار کن .