PDA

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



cs_mz88
جمعه 29 تیر 1397, 01:38 صبح
سلام به دوستان حرفه ای

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

shahryari
جمعه 29 تیر 1397, 22:00 عصر
سلام
امکانش که هست ، ولی براچی میخایی اجازه ندی هیچ برنامه ای اجرا نشه؟؟!!
هدفتو بگو شاید بشه سولوشن بهتری ارائه کرد

mr.sirwan
جمعه 29 تیر 1397, 22:29 عصر
یعنی چی اجازه نده هیچ نرم افزاری اجرا بشه، هدفتون خرابکاریه؟؟؟ اگه مدیران تاپیک رو ببینن به احتمال زیاد تاپیکتون حذف خواهد شد چون این دست کارا جزو اهداف خرابکارانه س

Arioun
شنبه 30 تیر 1397, 08:36 صبح
سلام.
دوستان و اساتید عزیز، فکر می‌کنم بهتر باشه که پیشداوری نکنیم.
ایشون حرفی از انجام این کار بطور مخفیانه نزدن. اگر عبارت «بدون اجازه کاربر» رو در پست ایشون نمی‌بینیم، منطقیش اینه که فرض رو بر حالت نرمال بذاریم، تا زمانی که خلاف قضیه ثابت بشه. شاید یکی از اهدافشون استفاده حداکثری از توان پردازش سیستم کاربر باشه.
بنابراین بهتره که اگر پاسخی داریم ارائه بدیم، و در صورتی که تاپیک رو خلاف مقررات می‌دونیم، از گزینه گزارش تخلف استفاده کنیم.
و اما در مورد سوال اصلی،
دوست عزیز شما مشخص نکردید چه برنامه‌هایی قراره بسته بمونن.
مسلما نمیشه تمام پروسه‌های ویندوز رو تعطیل کرد. حتی ممکنه در این صورت برنامه خودتون هم ران نشه.
بنابراین باید تعریف‌ دقیق‌تری از «برنامه» داشته باشید.
آیا منظور برنامه‌های متصل به شبکه هست؟
آیا پروسه‌ها و اپلیکیشن‌های built-in ویندوز مثل کورتانا رو هم شامل میشه؟
و...
چنین پرسش‌هایی بهتون کمک میکنه تا صورت مسئله رو واضح‌تر ببینید و زودتر به راه حل برسید.
موفق باشید.

cs_mz88
یک شنبه 31 تیر 1397, 00:00 صبح
ممنون از همگی ..
من یک پلیر نوشتم که میخوام تا حدی جلوی screen capture رو بگیریم ... دیدم نمیشه کاری کرد جز اینکه جلوی برنامه رو بگیرم.. و اینکه اگه راه دیگه ای داشته باشه ممنون میشم بشنوم و راهنماییم کنین

mr.sirwan
یک شنبه 31 تیر 1397, 01:22 صبح
این تاپیک (http://barnamenevis.org/showthread.php?549360-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D8%B4%D8%AF%D9%87&p=2396474#post2396474)رو نگاه بندازین، جناب افشاری یه کد قرار دادن ببینین مشکلتون حل میشه؟

abdullah20
یک شنبه 31 تیر 1397, 08:08 صبح
با سلام
انجام اینکار شدنی است ولی امنیت فیلم های شما را تضمین نمیکنه
البته میشه کاری کرد که کل پروسه ها بجز پروسه های ضروری و نرم افزار خودتون بسته بشه ولی بازم کاربر یکم حرفه ای باشه میتونه از این فیلتر هم عبور کنه
در کل این روش، روش خوبی برای هدف شما نیست ولی تاحدی میتونه جوابگوی شما باشه
بهتره برای این کار از روش های اصولی تر استفاده کنید که البته باید هزینه پرداخت کنید
خرید لایسنس پروژه هایی اینچنینی براتون از لحاظ هزینه صرف نخواهد کرد(البته برای بعضی از اینها مجبور هستید که لایسنس را خریداری کنید)
ولی میتونید به جای خرید لایسنس فیلمهاتون را بدید به شخص یا شرکتی که بدون خرید لایسنس اینکار را براتون انجا میده تا براتون عملیات رمزنگاری و پخش را انجام دهند
یکی دو نفر از همکارا هستن که چند سال وقت گذاشتن و تونستن امنیت محصولات را حد قابل قبولی بالا ببرند
موفق باشید

Arioun
یک شنبه 31 تیر 1397, 08:45 صبح
همونطور که دوستان هم اشاره کردند، راه زیادی برای این کار وجود نداره.
پیشنهاد abdullah20 عزیز پیشنهاد خوبی به نظر میرسه.
ولی منم چندتا متد به عنوان آلترناتیو میگم، شاید یه روز به کارتون بیاد.
جلوگیری از کپچر شدن ویدئو تقریبا غیرممکنه. اگر فرض کنیم که راهی پیدا شده تا شما هر پروسه یا برنامه‌ای رو در ویندوز ببندید، شاید تصور کنید که جلوی کپچر شدن گرفته شده. در صورتی که کاربر می‌تونه اپلیکشن شما رو در virtual machine اجرا کنه و بعد اقدام به ضبط کنه. برنامه شما قاعدتا فکر می‌کنه همه برنامه‌ها رو بسته، در صورتی که هیچگونه دسترسی به سیستم‌عامل اصلی که virtual machine در اون قرار گرفته نداره. حالا اصلا فرض می‌کنیم که اگر داخل virtual machine اجرا بشه، خودکار تشخیص میده که این سیستم عامل مجازی هست و باید خودشو ببنده. باز هم کاربر میتونه با رعایت قوانین (یعنی اجرا نکردن هیچ برنامه‌ای) ویدئویی رو پخش کنه و همزمان با کابل HDMI اون رو روی تلویزیون هم بفرسته. در این صورت می‌تونه با کارت کپچر ویدئو رو با کیفیت بالا ذخیره کنه.
من دوتا پیشنهاد دارم:
1. اپلیکیشن رو به گوشی‌های موبایل محدود کنید. مثلا تا جایی که من اطلاع دارم، اندروید به هیچ اپلیکیشنی اجازه ضبط کامل اسکرین رو نمیده (صدای ویدئو باید از اسپیکر به میکروفن برسه. اپ‌ها نمی‌تونن صدای داخل سیستم رو ضبط کنند). بنابراین ویدئوی ضبط شده از دستگاه اندروید، تقریبا بی کیفیته و ارزشی برای کاربر نداره.
2. ممنوعیت کپچر کردن رو اعلام کنید، ولی اقدام عملی انجام ندید. برنامه شما می‌تونه بجای حمله فعالانه به سایر برنامه‌ها، فقط بصورت منفعلانه به رویدادهای ویندوز گوش بده.اونوقت کاربر متخلف احساس آزادی می‌کنه، اولین ویدئو رو ضبط می‌کنه و برنامه هم یوزر (یا آی‌پی یا سریال نامبر دستگاه) رو به شما مخابره می‌کنه. شما اون دستگاه رو وارد لیست سیاه می‌کنید و دسترسی کاربر رو بطور دائم قطع میکنید.
راه اول کاربرا رو محدود میکنه و تعداد کاربرانتون به اندازه حالت عادی نیست.
راه دوم هم جا برای پیچوندن داره.
ولی در کل این راه‌ها موثرتر و ساده‌تر از بستن سایر برنامه‌ها بصورت aggressive هست.
آپدیت: واترمارک کردن ویدئوها هم میتونه موثر باشه. لااقل برای کاربرانی که اشتراک ندارن (البته اگر عضویت VIP و پرمیوم هم مد نظرتون باشه).

sds1920
یک شنبه 31 تیر 1397, 09:06 صبح
پیشنهادهایی که دوستان ارائه دادن به نظر من جزء بهترین پیشنهادهایی بود که میشد داد. ولی من هم یک پیشنهاد دارم. روی فیلمهایی که قرار نشون بدید یک امضا از خودتون قرار بدید. مثل آدرس سایت، ایمیل، شماره تلفن یا هر چیز دیگه و این امضا رو جایی قرار بدید که اگه طرف کپچر کرد و خواست crop کنه مجبور باشه قسمت عمده فریم فیلم رو crop کنه تا اون امضا از بین بره و عملا با این کار گند زدی به حالش

ولی دوست عزیز این مورد رو در نظر داشته باشید که بهترین راه حل ها هم که ارائه داده بشه باز هم یک در پشتی براش وجود داره و اگر کسی قصد دور زدن داشته باشه بالاخره اون در رو پیدا میکنه.
این تنها مشکل شما نیست. این مشکلیه همه ما و کسانی هست که تولید کننده یک محصول نهایی هستند. شما برای چیزی که دارید ارائه میدید زحمت کشیدید و حق دارید که اجازه کپی کردن رو به کسی ندید. ولی در ایران حق کپی رایت رعایت نمیشه و قانون هم از اون پشتیبانی نمیکنه.از طرفی تعداد زیادی از مردم اعتقادی به پرداخت هزینه برای چیزی که با دستانشون لمس نمیکنن ندارند. پس ما هم مشکل قانونی داریم و هم مشکل فرهنگی.
به نظر من کارهایی که دوستان گفتند رو پیاده سازی کنید و اثر خودتون رو حتما منتشرکنید حتی اگر مطمئنید از روش کپی میزنن. خود من بارها پروژه هایی رو از ترس اینکه یه وقت یه نفر از برنامه من سوء استفاده نکنه کنار گذاشتم و الان پشیمونم. اجازه ندین این ترس شما رو از ادامه کار منصرف کنه. در بدترین حالت این کار یه تجربه برای شما میشه.
موفق باشید

cs_mz88
یک شنبه 31 تیر 1397, 12:58 عصر
ممنون...
فیلم ها رمز شده و از این بابت مشکلی نیست... مشکل ما کپچر گرفتن از این فیلماست ... که دنبال ره حل هستیم

cs_mz88
یک شنبه 31 تیر 1397, 13:06 عصر
بابت همه پاسخ ها ممنون
ویدیو ها قرار نیست در بستر اینترت پخش بشه.. پس ما ویدیوی رمز شده رو تحویل کاربر میدیم و بعد با پلیر مخصوص اون رو پلی میکنه . بعضی از راه حل ها تقریبا نشدنی هست

cs_mz88
یک شنبه 31 تیر 1397, 13:07 عصر
راه حلی نیست زمانی که یه نرم افزار برای کپچر کردن اقدام میکنه ما بتونیم بفهمیم؟ یعنی سرویسی یا چیزی نیابد run بشه که بتونه این کارو انجام بده؟

رامین مرادی
یک شنبه 31 تیر 1397, 14:26 عصر
راه حلی نیست زمانی که یه نرم افزار برای کپچر کردن اقدام میکنه ما بتونیم بفهمیم؟ یعنی سرویسی یا چیزی نیابد run بشه که بتونه این کارو انجام بده؟

این کد رو یه بار تست کنید و نتیجه رو بگید



Process me = Process.GetCurrentProcess();
foreach (Process p in Process.GetProcesses())
{
if (P.Id != me.Id)
P.CloseMainWindow();
}

cs_mz88
یک شنبه 31 تیر 1397, 14:54 عصر
ممنون... فکر کنم غیر از این کار کاره دیگه ای نمیشه کرد... درسته؟

cs_mz88
یک شنبه 31 تیر 1397, 15:02 عصر
این کد قعالیت سرویس های ویندوز هم مختل میکنه..

shahryari
یک شنبه 31 تیر 1397, 17:02 عصر
من یه زمانی نیاز داشتم در برنامه ام همه وی پی ان ها و قند شکن ها و کریو و...... ببندم
اومدم یه لیستی از پروسس نیم هایی از این قیبل رو تهیه کردم (یکم زمان بر بود) تازه باید چیزایه که جدیدا میومدن رو هم اضافه میکردم (لیست مذکور انلاین اپدیت میشد)
بعد اون اسمهایی که در لیست پروسس های ویندوز بود رو kill میکردم
.
.
گفتم شاید به دردتون بخوره

cs_mz88
یک شنبه 31 تیر 1397, 23:43 عصر
این لیست رو من درست کردم... تنها راهش بود... اما به نظرتون من این لیست رو اینترنتی کنم؟؟؟ تا حالا 25 نرم افزارو نصب کردم و اسم پراسس رو دو در taskmanager در آوردم...

cs_mz88
یک شنبه 31 تیر 1397, 23:46 عصر
دوستان امروز یه ایده به نظرم رسید.. البته انجامش دادم جواب هم داد... اومدم پراسس هایی که از cpu استفاده میکنن و ران هستن رو بدست میارم و پراسس هایی جز پراسس های خودم که داره استفاده میشه رو kill میکنم...
جواب داد ولی بعضی نرم افزارا تو لیست apps ، در taskmanager نمیاد... اگه بتونم اونو کنترل کنم فک کنم بشه جواب گرفت...
ممنون میشم نظر شما دوستان رو بدونم

ASKaffash
دوشنبه 01 مرداد 1397, 07:37 صبح
سلام
جلوی برنامه ScreenShot اجرائی را بگیرید جلوی ویندوز سرویس را نمی توانید به نظرم اصلا" این روشها کارآمد نیست جلوی فیلمبرداری از فیلم را نمی توان به راحتی گرفت وگرنه می توانید کلیه Process را دریافت و اگر Process جدیدی اضافه شد آن را Kill کنید (با یک تایمر)

shahryari
دوشنبه 01 مرداد 1397, 09:17 صبح
می توانید کلیه Process را دریافت و اگر Process جدیدی اضافه شد آن را Kill کنید (با یک تایمر)

اگر اسکرین کپچر قبل از برنامه ران شود تکلیف چیست؟

cs_mz88
دوشنبه 01 مرداد 1397, 09:23 صبح
اگر اسکرین کپچر قبل از برنامه ران شود تکلیف چیست؟
دقیقد نمیشه پیگیر بود... الان من با استفاده از cpu تونستم برنامه هایی که run میشن و دارن از cpu استفاده میکنن رو پیدا کنم و kill کنم
مشکلم اینه الان چطور کاری کنم بتونم هز چند ثانیه این حلقه رو انجام بدم بدون اینکنه به قسمت پخش ویدیو ایرادی وارد بشه.... ممنون میشم کمک کنین... تیکه کد رو هم اگه لازم باشه میزایرم

رامین مرادی
دوشنبه 01 مرداد 1397, 09:33 صبح
دقیقد نمیشه پیگیر بود... الان من با استفاده از cpu تونستم برنامه هایی که run میشن و دارن از cpu استفاده میکنن رو پیدا کنم و kill کنم
مشکلم اینه الان چطور کاری کنم بتونم هز چند ثانیه این حلقه رو انجام بدم بدون اینکنه به قسمت پخش ویدیو ایرادی وارد بشه.... ممنون میشم کمک کنین... تیکه کد رو هم اگه لازم باشه میزایرم

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

mr.sirwan
دوشنبه 01 مرداد 1397, 19:29 عصر
دوستان امروز یه ایده به نظرم رسید.. البته انجامش دادم جواب هم داد... اومدم پراسس هایی که از cpu استفاده میکنن و ران هستن رو بدست میارم و پراسس هایی جز پراسس های خودم که داره استفاده میشه رو kill میکنم...
جواب داد ولی بعضی نرم افزارا تو لیست apps ، در taskmanager نمیاد... اگه بتونم اونو کنترل کنم فک کنم بشه جواب گرفت...
ممنون میشم نظر شما دوستان رو بدونم

به نظرم شما دیگه داری زیاده روی میکنی دوست عزیز، میای کل پراسس های ویندوز رو غیر از پراسس های برنامه خودت kill میکنی؟؟؟؟!!!! :متعجب::متعجب: داری با سیستم مشتری بدبخت چیکار میکنی؟؟؟ حالا گیریم همه اینا کارامد بود و مثلا کسی نتونست از نرم افزار های فیلم برداری در محیط ویندوز و کامپیوتر استفاده کنه، اما اگه یه نفر اومد با دوربین گوشی یا هر دوربین دیگه ای شروع به فیلم برداری کرد، اون موقع چیکار میکنی؟؟ میری پراسس های دوربین گوشیشو هم kill میکنی؟؟ :گیج:

به نظرم زیاد سخت نگیر، اگه واقعا فیلما انقد واست ارزش دارن و نمیخوای کسی ازشون کپی برداری کنه همونطور که دوستان گفتن بهترین گزینه اینه که یه واترمارک واسه خودت دست و پا کنی و بذاری رو فیلما (شامل اسم و شماره تماس و ایمیل و وبسایت و .....) و هم ابتدا و هم انتهای هر فیلم بازم یه صفحه معرفی به هر فیلم اضافه کن که قشنگ خودتو معرفی میکنی

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

Reza-HNA
دوشنبه 01 مرداد 1397, 21:03 عصر
تقریبا تمامی نرم افزار های موجود همینکار رو میکنن، لیستی از نرم افزار های فیلم برداری از صفحه رو تهیه و در صورت بازشدن اقدام به بستن نرم افزار میکنن. (چه نرم افزار داخلی، چه خارجی)
با تغییر نام نرم افزار های کپچر صفحه میشه این روش رو دور زد :لبخند:

barnamenevisjavan
سه شنبه 02 مرداد 1397, 00:19 صبح
سلام یه راه دیگه این هست که برنامه رو Maximize کنید و رویداد KeuPress رو چک کنید و کلیپبورد رو خالی کنید
https://www.codeproject.com/Questions/774883/Form-Anti-Screen-Capture-Method-or-logic
روش دوم، از این کتابخانه استفاده کنید در حالت ماکسیمایز کلیه فعالیت هارو بلوکه میکنه
https://github.com/salvadj1/AntiJumpX2
و روش سوم هم به این صورت که هنگام پخش، دوباره ماکسیمایز کنید و این سری یه سیستم فایل واچر بنویسید و تغییرات روی هارد رو بررسی کنید هرکجا که تغییری در فایل ها ایجاد شد (ایجاد فایل جدید با فرمت تصویری و تمپ ویدئویی) بلافاصله حذفش کنید

ASKaffash
سه شنبه 02 مرداد 1397, 07:43 صبح
سلام
گفتم جلوی ویندوز سرویس را چگونه میگیرید ویندوز سرویس در ابتدای بالا آمدن ویندوز استارت می شود و شما کنترلی به آن ندارید

رامین مرادی
سه شنبه 02 مرداد 1397, 08:04 صبح
سلام
گفتم جلوی ویندوز سرویس را چگونه میگیرید ویندوز سرویس در ابتدای بالا آمدن ویندوز استارت می شود و شما کنترلی به آن ندارید

خب باید یه سری سرویس های پایه ویندوز رو استثنا قرار بدن .

cs_mz88
سه شنبه 02 مرداد 1397, 14:29 عصر
سلام یه راه دیگه این هست که برنامه رو Maximize کنید و رویداد KeuPress رو چک کنید و کلیپبورد رو خالی کنید
https://www.codeproject.com/Questions/774883/Form-Anti-Screen-Capture-Method-or-logic
روش دوم، از این کتابخانه استفاده کنید در حالت ماکسیمایز کلیه فعالیت هارو بلوکه میکنه
https://github.com/salvadj1/AntiJumpX2
و روش سوم هم به این صورت که هنگام پخش، دوباره ماکسیمایز کنید و این سری یه سیستم فایل واچر بنویسید و تغییرات روی هارد رو بررسی کنید هرکجا که تغییری در فایل ها ایجاد شد (ایجاد فایل جدید با فرمت تصویری و تمپ ویدئویی) بلافاصله حذفش کنید

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

ASKaffash
سه شنبه 02 مرداد 1397, 22:50 عصر
سلام
ملاک تشخیص چیست؟

barnamenevisjavan
چهارشنبه 03 مرداد 1397, 09:55 صبح
سلام ... ممنون بابت پاسختون.. میشه در مورد روش سوم راهنمایی کنید؟
https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx