PDA

View Full Version : ساخته نشدن کی در ریجستری



xrezax
سه شنبه 26 مهر 1390, 00:44 صبح
سلام دوستان
من برنامم توی درایو c کپی میشه. حالا می خوای یک کی واسش در local_machin در ویندوز سون بسازم. هر کاری کردم نساخت که نساخت. برنامم ویروس نیست.
از این دستور داس هم استفاده کردم


Shell "reg add " & "hklm\Software\Microsoft\Windows\CurrentVersion\Ru n" & " /v MyProgram " & "/t reg_sz " & "/d C:\MyProgram.exe" & " /f", vbHide

باز کار نداد. دوستان راه حلی چیزی به ذهنتون نمی رسه.
برنامم باید حتماً حتماً حتماً توی local_machin باشه.
مرسی

arash020
سه شنبه 26 مهر 1390, 05:14 صبح
سلام
من هم سعی کردم که توی رجیستری سون مقدار نویسی کنم ولی انگار این ویندوز یه سیستم محافظ رجبستری داره که وقتی من مقداری رو توی یه ریشه اضافه یا تغییر میدادم خود به خود یه بکاپ از مقدار قبلی میگرفت و از اون استفاده میکرد
و عملا تغییرات من اعمال نمیشد!!!

حالا شما یه سرب به http://www.eaglevb.blogfa.com/ بزن
اونجا چندتا برنامه هست که از ocx مخصوص کار با رجیستری برای ابنکار استفاده شده
اون ها رو امتحان کن شاید با ocx جواب بده...

موفق باشی

xrezax
سه شنبه 26 مهر 1390, 08:33 صبح
ocx نمی خوام. کد می خوام.
دوستان کسی کدی چیزی داره ممنون میشم راهنمایی کنه

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

محسن واژدی
سه شنبه 26 مهر 1390, 09:33 صبح
ocx نمی خوام. کد می خوام.
دوستان کسی کدی چیزی داره ممنون میشم راهنمایی کنه
سلام علیکم
قبلا" کدی در پست های انتهایی تاپیک قبلیتان که در این موضوع بود قرار دادم، که بدون هیچ مشکلی کلید مورد نظر را ایجاد میکرد

موفق باشید

xrezax
سه شنبه 26 مهر 1390, 09:49 صبح
این کد هم جدا باشه کار میده. اما وقتی توی برنامه بکار می برم کار نمیده.
میشه یک سورسی بزاری از اون دستوری که می فرمایید اینجا بزارید. که اول برنامه رو توی درایو سیو کنه بعد کلیدشو توی ریجستری بزاره. توی machin

محسن واژدی
سه شنبه 26 مهر 1390, 10:12 صبح
ابتدا در reference فایل wshom.ocx را از system32 به برنامه اضافه کنید
سپس دستور زیر را اجرا کنید:

Private reg As New WshShell

Private Sub Command1_Click()

FileCopy App.Path & "\" & App.EXEName & ".exe", "c:\smpl.exe"

reg.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run\MyProgram", "c:\smpl.exe"

End Sub

البته همانطور که اطلاع دارید چون داده های موجود در HKLM مشترک مابین همه userها هستند پس در userهای محدود نمیتوانیم هیچ داده ای را در این مکان ثبت کنیم

توضیحات بیشتر دررابطه با کاربا این کامپوننت را هم میتوانید در پست زیر مشاهده کنید:
http://barnamenevis.org/showthread.php?307088-%D9%85%D9%88%D8%AC%D9%88%D8%AF-%D8%A8%D9%88%D8%AF%D9%86-%DA%A9%D9%84%D8%A7%D8%B3-clsregistry-%D8%AF%D8%B1-vb6&p=1347843&viewfull=1#post1347843

موفق باشید

xrezax
سه شنبه 26 مهر 1390, 10:33 صبح
ابتدا در reference فایل wshom.ocx را از system32 به برنامه اضافه کنید
سپس دستور زیر را اجرا کنید:

Private reg As New WshShell

Private Sub Command1_Click()

FileCopy App.Path & "\" & App.EXEName & ".exe", "c:\smpl.exe"

reg.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run\MyProgram", "c:\smpl.exe"

End Sub

البته همانطور که اطلاع دارید چون داده های موجود در HKLM مشترک مابین همه userها هستند پس در userهای محدود نمیتوانیم هیچ داده ای را در این مکان ثبت کنیم

توضیحات بیشتر دررابطه با کاربا این کامپوننت را هم میتوانید در پست زیر مشاهده کنید:
http://barnamenevis.org/showthread.php?307088-%D9%85%D9%88%D8%AC%D9%88%D8%AF-%D8%A8%D9%88%D8%AF%D9%86-%DA%A9%D9%84%D8%A7%D8%B3-clsregistry-%D8%AF%D8%B1-vb6&p=1347843&viewfull=1#post1347843

موفق باشید
به این خط اررور میده

reg As New WshShell

محدود یعنی چی؟؟؟؟
پس راه چاره چیه ؟؟؟؟

محسن واژدی
سه شنبه 26 مهر 1390, 11:35 صبح
به این خط اررور میده

reg As New WshShell
حتما" خطای مقابل است : "user-defiend type not defiend"
اگر اینطور است، چون هنوز کامپوننت مورد نظر را اضافه نکرده اید:


ابتدا در reference فایل wshom.ocx را از system32 به برنامه اضافه کنید




محدود یعنی چی؟؟؟؟
پس راه چاره چیه ؟؟؟؟

در userهایی که محدود هستند (admin نیستند) (مثلا در کافی نت ها) اجازه تغییر در داده های HKLM به هیچ وجه وجود ندارد، برای این بایستی کلید را در HKCU ایجاد کنید

موفق باشید

xrezax
سه شنبه 26 مهر 1390, 12:05 عصر
آها یعنی باید از قبل تعیین دسترسی شده باشند اون موقع کار نمی ده درسته ؟؟؟

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

شما راهی سراغ ندارید ؟؟؟ فایل کمکی یا ocx هم نخواد

محسن واژدی
سه شنبه 26 مهر 1390, 12:18 عصر
آها یعنی باید از قبل تعیین دسترسی شده باشند اون موقع کار نمی ده درسته ؟؟؟
بله درسته؛ البته این موضوع درمورد همه روش های موجود است، چه با cmd ، چه دستی قصد ویرایش hklm را داشته باشیم و چه به سایر روش ها
مشکلی زیادی از این بابت وجود ندارد چرا که اکثریت سیستم ها admin هستند، بهر حال میتوانیم با تابع:

Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Long, ByRef lpdwReserved As Long) As Long

وضعیت admin بودن کاربر را مشخص کنیم،
نمونه:

MsgBox IsNTAdmin(ByVal 0&, ByVal 0&)

در صورتیکه کاربر فعلی admin باشد مقدار برگشتی 1 در غیر اینصورت صفر خواهد بود



اما این سیستمی که ما داریم اجازه ساختن می ده. اما مشکلش اینه که وقتی کنار برنامه قرار می گیره و برنامه توی درایو c کپی میشه دیگه کی ساخته نمی شه.
زیاد متوجه نشدم، اگر از win7 استفاده میکنید این میتواند بدلیل فعال بودن لایه امنیتی درایو ویندوز باشد



شما راهی سراغ ندارید ؟؟؟ فایل کمکی یا ocx هم نخواد
اگر ویندوز اجازه ویرایش ریجستری را نداده باشد نمیتوانیم از ocx یا فایل خارجی هم برای این کار استفاده کنیم (یکبار دستورات را بر روی HKCU هم امتحان کنید)

موفق باشید

xrezax
سه شنبه 26 مهر 1390, 16:09 عصر
یوزرم ادمین هستش.
HKCU می تونم بسازم. اما MACHIN واسم مهمه

محسن واژدی
سه شنبه 26 مهر 1390, 16:25 عصر
متاسفانه فعلا به ویندوز7 دسترسی ندارم، اما همانطور که قبلا هم عرض شد میتواند از امنیت ویندوز باشد، برای بررسی این موضوع امنیت درایو ویندوز را با مراجعه به "System Properties" غیرفعال کنید:


انشاء الله دوستان بتوانند راه حل های بهتری بدهند

موفق باشید

xrezax
سه شنبه 26 مهر 1390, 22:27 عصر
دوستان کسی نظری نداره ؟؟

xrezax
چهارشنبه 27 مهر 1390, 16:51 عصر
دوستان کسی نمی تونه کمک کنه؛ لنگ همین یه خط دستورم

xrezax
جمعه 29 مهر 1390, 13:39 عصر
دوستان من مشکل رو فهمید.
تا زمانی در محیط ویژوال بیسک برنامه رو تست کنید و کی بسازید در MACHIN کی ساخته می شه (در ویندوز سون) ولی وقتی .exe می کنیم و کمپایلش می کنیم برنامه دیگه کی نمی سازه.
دوستان راه حلی پیشنهاد ندارن ؟؟؟؟

توی انجمن سرچ می کردم و با این دو خط بر خوردم

نکته : البته دو تا راه ديگر برای اينکار وجود دارد که برخی تروجان ها هم از اين روشها استفاده می کنند تا روی سيستم باقی بمانند :
يكي استفاده از win.ini و نوشتن نام فايل جلوي = run و ديگري استفاده از system.ini و نوشتن نام برنامه جلوي خط explorer.exe .

اما توضیحاتش ناقص بود. دوستان کسی در مورد این دو موضوع اطلاعاتی داره ممنونش می شم در اختیارم بزاره