PDA

View Full Version : سوال: نحوه تشخیص اتصال فلش مموری به کامپیوتر و تشخیص برنامه از داخل فلش مموری؟



asgharjoon2
دوشنبه 22 اسفند 1390, 22:00 عصر
سلام. بچه های c کار. من تو C# دنبال این میگشتم که یه برنامه داخل فلش مموری بریزم که تا به یه کامپیوتری وصل میشه یه سری کار انجام بده اما انگار اونجا نمیشه گفتند شما ها شاید بتونین کمکم کنین. دقت کنین برنامه ای که می نویسم قراره داخل فلش باشه تا به پورت وصل شد اجرا بشه. نمیخوام تا یه فلش به کامپیوترم وصل بشه اجرا بشه میخوام به یه کامپیوتر دیگه تا وصل شد اجرا بشه واسه برنامم به نوعی میخوام یه اتوران بنویسم که تا فلشو به هر کامپیوتری زدی برنامه اجرا بشه.
ممنون میشم کمکم کنین

vasilopita
سه شنبه 23 اسفند 1390, 10:31 صبح
شاید این بتونه کمکت کنه :

if(GetDriveType(TEXT("h:"))==DRIVE_REMOVABLE)

البته اینجا فقط درایو H رو مورد بررسی قرار دادیم

asgharjoon2
سه شنبه 23 اسفند 1390, 12:12 عصر
نه متوجه منظورم نشدین. من نمیخوام تو کتمپیوترم برنامه ای اجرا کنم. من میخوام یه بر نامه ای باشه که تا فلش مموریو به هر کامپیوتری وصل می کنی یه برنامه اجرا شه. نمی خوام برنامه ای بنویسم که فلش مموریو تشخیص بده. اونو نوشتم

Arcsinos
سه شنبه 23 اسفند 1390, 15:07 عصر
دوست عزیز باید یه درایور بنویسی، و فکر میکنم باید از تابع ( IRP_MJ_CREATE (Serial استفاده کنی. برای اطلاعات بیشتر به WDK Documentation مراجعه کن. البته چون فلش USB یه درایور PnP یا به قولی Plug and Play هست شاید تابع IRP_MN_START_DEVICE هم به کارت بیاد . چون اونطوری که توی WDK Documentation نوشته : All PnP drivers must handle this IRP . موفق و پیروز باشی (اینم یه پی دی اف در مورد این IRP (http://www.usb.org/developers/whitepapers/irp_mn.pdf))


--------------------------------------------------------------------------

البته اونطور که بوش میاد شما نمیخوایید این همه پیچیده بشه (یعنی فکر میکنم یه چیز دیگه میخوایید ) . چرا از Autorun.inf استفاده نمی کنید . توش بنویسید Open = YourProgram.exe . حالا وقتی که یو اس بی رو به هر کامپیوتری بزنی این فایل اجرا میشه. اگه دقت کرده باشی وقتی که یو اس بی رو به کامپیوتر میزنی اگه ویروسی باشه تا وقتی که روی ویروس کلیک نکنی هیچ کاری به کارت نداره مگر اینکه ویروست Autorun.inf باشه .

asgharjoon2
سه شنبه 23 اسفند 1390, 16:42 عصر
من میخوام بدون حتی یک کلیک کاربر برنامه اجرا بشه اینی که شما گفتین اگه بنویسیم تا فلشو وصل کنیم به کامپیوتر برنامه از تو فلش خود به خود اجرا میشه؟

r00tkit
سه شنبه 23 اسفند 1390, 21:59 عصر
دوست عزیز باید یه درایور بنویسی، و فکر میکنم باید از تابع ( IRP_MJ_CREATE (Serial استفاده کنی. برای اطلاعات بیشتر به WDK Documentation مراجعه کن. البته چون فلش USB یه درایور PnP یا به قولی Plug and Play هست شاید تابع IRP_MN_START_DEVICE هم به کارت بیاد . چون اونطوری که توی WDK Documentation نوشته : All PnP drivers must handle this IRP . موفق و پیروز باشی (اینم یه پی دی اف در مورد این IRP (http://www.usb.org/developers/whitepapers/irp_mn.pdf))


--------------------------------------------------------------------------
.

در مورد کرنل چیزی ننویس چیز هایی که نوشتی همش اشتباه بود و اصلا ربط به هم نداشت و...

IRP_MJ_CREATE یه تابع نیست یه IRP هستش و جمله ی ازش استفاده کن اصلا معنی نداره این IRP موقع دست رسی به یه فایلی فرستاده می شه همین طوری مسیر stack رو به پایین می ره و... چون به موضوع ربط نداره زیاد توضیح نمی دم

موفق باشید

Arcsinos
سه شنبه 23 اسفند 1390, 22:56 عصر
asgharjoon2 : آره کاریو که گفتم انجام بده، برنامه ات اجرا میشه . فقط میدونی که فایل اوتوران توی خط اولش باید بنویسی [Autorun] بعد توی خط بعدی بنویس Open = YourProgram.exe ، به جای YourProgram هم اسم برنامه ات رو بنویس. به شرطی که برنامه ات هم کنار فایل اوتوران باشه در غیر این صورت مسیرشم باید بنویسی .

Geek1982: وقتی اساتید سرشون شلوغه و نمیتونن جواب بدن، شاگردا مجبورن بیان و دست گل به آب بدن . (البته خوب دقت کنی همچین چرت هم نگفتما . جمله ی آخر داخل پرانتز رو هم یه نگاه بندازی بد نیست)

موفق و پیروز باشید جمیعا .

asgharjoon2
چهارشنبه 24 اسفند 1390, 00:44 صبح
اگه منظور شما فایل autorun.inf باشه که تو ویندوز 7 کار نمیده در ضمن نیاز به کلیک کردن داره کاربر باید حتما اجرا کنه تا اجرا بشه. اگه کدی دارین که با اون بشه این کارو کرد ممنون میشم اگه عین کد رو واسم بنویسین. مرسی

حامد مصافی
چهارشنبه 24 اسفند 1390, 12:20 عصر
این کار با استفاده از تابع RegisterDeviceNotification (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363431%28v=vs.85%29.aspx) صورت می‌پذیرد

asgharjoon2
چهارشنبه 24 اسفند 1390, 14:20 عصر
شرمنده من چون c کار نیستم و ضعیفم تو این زبون میشه یه نمونه واسه من بنویسین در حد چند خط که یه برنامه خودکار اجرا بشه. ممنون میشم
در ضمن اینیم که شما گفتین نگاه کردم گویا این اتصال یه فلش مموریو میتونه بفهمه اما به شرط اینکه داخل کامپیوتر اجرا بشه. من میخوام فایلم داخل فلش خود به خود اجرا بشه. روی هر سیستمی

jalal.H
سه شنبه 29 فروردین 1391, 14:47 عصر
شرمنده من چون c کار نیستم و ضعیفم تو این زبون میشه یه نمونه واسه من بنویسین در حد چند خط که یه برنامه خودکار اجرا بشه. ممنون میشم
در ضمن اینیم که شما گفتین نگاه کردم گویا این اتصال یه فلش مموریو میتونه بفهمه اما به شرط اینکه داخل کامپیوتر اجرا بشه. من میخوام فایلم داخل فلش خود به خود اجرا بشه. روی هر سیستمی

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

ممنون

رامین مرادی
پنج شنبه 31 فروردین 1391, 12:13 عصر
دوستان لطفا" از آموزش این گونه مطالب بپر هیزید ببینید یکی می آد می گه که من تازه کارم و البته اول یه چیزی بگم قصد توهین ندارم .طرف می خواد مثلا" یه برنامه بنویسه که البته فکر کنم همه شما می دونید چیه اطلاعاتی از سیستم بکشه بیرون وقتی فلش وصل می شه به نظر من اینگونه مطالب نیاز به زمان بیشتری داره تا بتونی خودت یه کاریش کنی و یکی که تازه کاره و می خواد یه شلوغ کار یهایی بکنه
لطفا" از آموزش این گونه مطالب تو فروم بپرهیزید اگه می خواهید راهنمایی کنید پیام خصوصی براش بفرستید من درسته خودم تجربه ویروس نویسی داشتم ولی این کار و اصلا" نمی پسندم و برای شخصی که از اطلاعاتش دزدکی استفاده میشه واقعا" بی رحمیه:ناراحت::عصبانی++: