PDA

View Full Version : مشكل در تبديل كد VB به #C



razavi_university
یک شنبه 17 آذر 1387, 00:34 صبح
سلام خدمت دوست VB كار
براي يك برنامه نياز به مخفي كردن پروسه مربوط به آن در Task Manager داشتم كه با جستجو كد آنرا در تالار VB پيدا كردم
ولي متاسفانه در تبديل قسمتهايي از آن به به مشكل برخورده ام(قسمتهايي كه با رنگ قرمز مشخص شده است).
معادل اينها در زبان C چيست؟


Private Type bkh
flag As Long
psz As Long
lParam As Long
pt As Long
vkDirection As Long
End Type

Private Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub Hide_Process(Name As String)

Dim pName As Long
Dim pType As Long
Dim l As Long
Dim Tid As Long
Dim hTid As Long
Dim pid As Long
Dim h As Long
Dim i As Long
Dim hProcess As Long
Dim f As bkh
Dim s As String
Dim bkh() As Byte

h = FindWindow(vbNullString, "Windows Task Manager")
KillTimer h, 0
h = FindWindowEx(h, 0, "#32770", vbNullString)
h = FindWindowEx(h, 0, "SysListView32", vbNullString)

If h = 0 Then
Exit Sub
End If

f.flag = 8 Or &H20
Call GetWindowThreadProcessId(h, pid)
hProcess = OpenProcess(1082, 0, pid)
bkh = StrConv(Name, vbFromUnicode)
pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)
WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l
f.psz = pName
pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)
WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l
i = SendMessage(h, &H1000 + 13, 0, pType)
If i <> -1 Then
SendMessage h, &H1000 + 8, i, 0
End If
VirtualFreeEx hProcess, pType, Len(f), &H8000
VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000

End Sub

r0ot$harp
یک شنبه 17 آذر 1387, 17:13 عصر
سلام خدمت دوست VB كار
براي يك برنامه نياز به مخفي كردن پروسه مربوط به آن در Task Manager داشتم كه با جستجو كد آنرا در تالار VB پيدا كردم
ولي متاسفانه در تبديل قسمتهايي از آن به به مشكل برخورده ام(قسمتهايي كه با رنگ قرمز مشخص شده است).
معادل اينها در زبان C چيست؟


Private Type bkh
flag As Long
psz As Long
lParam As Long
pt As Long
vkDirection As Long
End Type

Private Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub Hide_Process(Name As String)

Dim pName As Long
Dim pType As Long
Dim l As Long
Dim Tid As Long
Dim hTid As Long
Dim pid As Long
Dim h As Long
Dim i As Long
Dim hProcess As Long
Dim f As bkh
Dim s As String
Dim bkh() As Byte

h = FindWindow(vbNullString, "Windows Task Manager")
KillTimer h, 0
h = FindWindowEx(h, 0, "#32770", vbNullString)
h = FindWindowEx(h, 0, "SysListView32", vbNullString)

If h = 0 Then
Exit Sub
End If

f.flag = 8 Or &H20
Call GetWindowThreadProcessId(h, pid)
hProcess = OpenProcess(1082, 0, pid)
bkh = StrConv(Name, vbFromUnicode)
pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)
WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l
f.psz = pName
pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)
WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l
i = SendMessage(h, &H1000 + 13, 0, pType)
If i <> -1 Then
SendMessage h, &H1000 + 8, i, 0
End If
VirtualFreeEx hProcess, pType, Len(f), &H8000
VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000

End Sub



دوست عزیز برای این کار شما می تونید از برنامه ی VbTo Convertor استفاده کنید . واقعا عالیه .




باتشکر احسان

REZADG
یک شنبه 17 آذر 1387, 17:54 عصر
اق احسان اگه میشه برنامه نامبرده رو بزارین و من داشتم کد های رجیستریش رو پیدا نکردم و ...

حامد مصافی
یک شنبه 17 آذر 1387, 19:36 عصر
Dim bkh() As Byteدر C# باید طول آرایه را قید کنید. یا اینکه از system.collection.gereric.list<byte> استفاده کنید.


f.flag = 8 Or &H20
f.flag = 8 | 0x20
Len(Name)
Name.Length

&H1000
0x1000

VarPtr
int VarPtr(object e)
{
GCHandle GCH = GCHandle.Alloc(e, GCHandleType.Pinned);
int GC2 = GCH.AddrOfPinnedObject.ToInt32;
GCH.Free();
return GC2
}

bkh = StrConv(Name, vbFromUnicode)

bkh = System.Text.Encoding.Unicode.GetString(Name);

FiACKER
یک شنبه 17 آذر 1387, 19:47 عصر
سلام

ايا مرجعي وجود داره كه كسي كه ويبي بلده ، مثلا سي شارپ رو ياد بگيره ؟
مثلا بگه معادله هر كد در سي شارپ چي هست ؟

با تشكر

saeedmontazer
یک شنبه 17 آذر 1387, 22:47 عصر
کسی جوابی نداره؟؟

r0ot$harp
یک شنبه 17 آذر 1387, 23:56 عصر
اق احسان اگه میشه برنامه نامبرده رو بزارین و من داشتم کد های رجیستریش رو پیدا نکردم و ...

دوست عزیز اینم یه جستجو که به اندازه ی یه دنیا نتیجه داره . :قهقهه::قهقهه::قهقهه::متفکر:: بخند::لبخند::بامزه::بامزه:



http://www.google.com/search?q=vbto&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a



باتشکر احسان

r_oscar2007
سه شنبه 19 آذر 1387, 12:20 عصر
دوستان میشود لینک دانلود این برنامه را اینجا قرار دهید

Pr0grammer
سه شنبه 19 آذر 1387, 12:30 عصر
دوستان میشود لینک دانلود این برنامه را اینجا قرار دهید

اینم لقمه آماده؛ می خواین براتون دانلود کنم؟! :متفکر:
http://www.brothersoft.com/d.php?soft_id=37597&url=http%3A%2F%2Ffiles.brothersoft.com%2Fdevelopme nt%2Fvisual_basic%2FSetupVBto.exe

r_oscar2007
سه شنبه 19 آذر 1387, 12:51 عصر
دوست عزیز از این که لینک برنامه را قرار دادی ممنون ولی من این برنامه را دارم منظورم لینک دانلود این برنامه همره کرکش بود

Pr0grammer
سه شنبه 19 آذر 1387, 13:06 عصر
دوست عزیز از این که لینک برنامه را قرار دادی ممنون ولی من این برنامه را دارم منظورم لینک دانلود این برنامه همره کرکش بود

گذاشتن ک.ر.ک در اینجا ممکن نیست : چون جزء فعالیت های وارز محسوب میشه....

موفق باشید

razavi_university
چهارشنبه 20 آذر 1387, 00:35 صبح
دوستان من کد رو تبدیل کردم ولی متاسفانه کار نمیکنه
http://barnamenevis.org/forum/images/attach/rar.gif Hide Process.rar (http://www.barnamenevis.org/forum/attachment.php?attachmentid=26291&d=1228778700)

REZADG
چهارشنبه 20 آذر 1387, 21:50 عصر
دوستان من کد رو تبدیل کردم ولی متاسفانه کار نمیکنه
http://barnamenevis.org/forum/images/attach/rar.gif Hide Process.rar (http://www.barnamenevis.org/forum/attachment.php?attachmentid=26291&d=1228778700)

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