PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim Auslesen bestimmter Informationen



Hawkins
16.08.2010, 17:51
Tag

Ich code im Moment an meinem HwB0T, hab jedoch das Problem das ich aus einer DLL bestimmte Informationen auslesen und anwenden will. Die DLL ist in C++ gecoded und das, womit ich auslese in C#

Jedoch bekomme ich das nicht so wirklich hin... zB die Netzwerkinformationen (Verbindung, W-Lan/Lan sowas halt) - es funktioniert einfach nicht.

Ich wäre euch sehr verbunden wenn mir jemand, der ein C++ kenner ist mir nen Praxisbezogenes Beispiel geben kann wie ich das löse.

Kind Regards,
Hawkins

Elexarie
16.08.2010, 18:20
Präsentiere uns mal die .dll - Datei. =)

IRET
16.08.2010, 18:43
Oha Malware in .net und dann auch noch eine die was droppt.
Würd ich dir davon abraten...
Zu deiner Frage:
Ich schätz da wird die WinAPI verwendet und diese kannst du mit ddlimport auch in C# verwenden.
Also lass das mit der DLL und Google mal ein bischen (notfalls kannst du auch noch hier fragen ;))

Hawkins
16.08.2010, 19:05
Oha Malware in .net und dann auch noch eine die was droppt.
Würd ich dir davon abraten...
Zu deiner Frage:
Ich schätz da wird die WinAPI verwendet und diese kannst du mit ddlimport auch in C# verwenden.
Also lass das mit der DLL und Google mal ein bischen (notfalls kannst du auch noch hier fragen ;))

nicht Malware, im Sinne von Botnet.

Ich hab mir das so vorgestellt

Gibt den HwB0T und den HwBuilder - der HwBuilder buildet halt ne .exe, die beim Ausführen die .DLL nachlädt und keine andere Funktion hat, als die Info's zu laden und dann bestimmte Sachen zu machen^^

Daher sollte das auch kein FUD Crypting benötigen weils halt alles aus der .dll geladen wird (so wie ich denke)

wacked
17.08.2010, 11:55
Weil .dlls ganz dolle neu sind und von AVs nicht gescannt werden können...
Aber weil ich so ein lieber Kerl bin:
Die .NET Version kannste zB so rauskriegen:

#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
WIN32_FIND_DATA FoundFile;
HANDLE FileHandle;
TCHAR NETPath[MAX_PATH];
HKEY hKey;
DWORD dwSize;
char NetVersion[5]="v0.0";

if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\.NETFramework",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL) == ERROR_SUCCESS )
{
if(RegQueryValueEx(hKey, "InstallRoot", NULL, 0, (LPBYTE)NETPath, &dwSize) == ERROR_SUCCESS)
{
lstrcat(NETPath,"\\v*.*");
FileHandle=FindFirstFile(NETPath,&FoundFile);
do
{
FoundFile.cFileName[4]=0;
if(FoundFile.cFileName[1]>NetVersion[1] || FoundFile.cFileName[3]>NetVersion[3])
{
lstrcpy(NetVersion,FoundFile.cFileName);
}
}while(FindNextFile(FileHandle,&FoundFile));
FindClose(FileHandle);
}
else
cout<<"RegQueryValueEx: "<<GetLastError()<<endl;
RegCloseKey(hKey);
}
else
cout<<"RegCreateKeyEx(): "<<GetLastError()<<endl;
cout<<"Installed .NET Version: "<<NetVersion<<endl;
}
Installierte Software kannst du so rauskriegen:

#include <windows.h>
#define MAX_KEY_LENGTH 255
#define MAX_VALUE_NAME 16383

int main()
{
HKEY hKey;
FILETIME lpftLastWriteTime;
DWORD dwIndex=0,dwRecursiveIndex=0,lpcName=MAX_VALUE_NAM E;
TCHAR lpName[MAX_VALUE_NAME];

if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL) == ERROR_SUCCESS )
{
while(RegEnumKeyEx(hKey,dwIndex,lpName,&lpcName,0,0,0,&lpftLastWriteTime)!=ERROR_NO_MORE_ITEMS)
{
MessageBox(0,lpName,"Software",0);
while(RegEnumKeyEx(hKey,dwRecursiveIndex,lpName,&lpcName,0,0,0,&lpftLastWriteTime)!=ERROR_NO_MORE_ITEMS)
{
MessageBox(0,lpName,"SubSoftware",0);
}
dwIndex++;
lpcName=MAX_VALUE_NAME;
}

}
else
{
MessageBox(0,"can´t RegCreate..()","",0);
}
}
Die IE Version findest du hier:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Versionund sonst wäre es immer hilfreich genau zu sagen WELCHE infos man haben will.

diSturbia
17.08.2010, 12:25
Die installierten .Net Versionen kann man auch einfacher auslesen. Erstelle einfach ein Array. In dieses lädst du alle Unterordner dieses Pfades:

%SYSTEMROOT%\Microsoft.NET\Framework
Und entfernst dann die Ordner, die nicht mit Ihrem Namen für eine installierte .Net Version stehen. So hat man alle installierten .Net- Versionen. ( Passt zwar nicht zum Thema: In den meisten .Net- Versions- Ordnern [z.B.: 3.5] gibt es die Datei vbc.exe, csc.exe. Dies sind die Kompiler für VB.Net bzw. C#. )