Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[C++] Anti Hybrid-Analysis Code

- - - - -

  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1
gr33d

gr33d

    Pentester

  • Premium Member
  • Likes
    169
  • 130 Beiträge
  • 472 Bedankt
  • Android [root]
  • Windows, Linux

Hier ist mal ein kleiner Codeschnipsel um die VM von hybrid-analysis.com zu erkennen. Ist zwar sehr standard aber funktioniert trotzdem.

//#include <windows.h>

			int CPUInfo[4] = { -1 };
			char CPUBrandString[0x40];
			__cpuid(CPUInfo, 0x80000000);
			unsigned int nExIds = CPUInfo[0];
			memset(CPUBrandString, 0, sizeof(CPUBrandString));

			for (int i = 0x80000000; i <= nExIds; ++i)
			{
				__cpuid(CPUInfo, i);
				// Interpret CPU brand string.
				if (i == 0x80000002)
					memcpy(CPUBrandString, CPUInfo, sizeof(CPUInfo));
				else if (i == 0x80000003)
					memcpy(CPUBrandString + 16, CPUInfo, sizeof(CPUInfo));
				else if (i == 0x80000004)
					memcpy(CPUBrandString + 32, CPUInfo, sizeof(CPUInfo));
			}

			CPU = CPUBrandString;
			char pcname[MAX_PATH];
			GetEnvironmentVariableA("COMPUTERNAME", pcname, sizeof(pcname));

			int digits = 0;
			for (int i = 0; i < strlen(pcname); i++) {
				if (isdigit(pcname[i])) digits++;
			}
			if ((digits * 4) > strlen(pcname)) {
				goto VMerkannt;
			}
			else {
				if ((CPU.find("AMD") != std::string::npos) && (CPU.find("6272") != std::string::npos)) {
					goto VMerkannt;
				}
				else {
goto keinVM;
}

Schaut zuerst ob  mehr als 25% des PC-namen Zahlen sind (random generierte Namen) und schaut dann ob der Prozessor der AMD 6272 ist (der ist nämlich in der Hybrid Analysis VM "eingebaut")

Ne andere Möglichkeit wäre über die MAC Adresse des stanard Netzwerkadapters zu gehen, da die MAC immer mit den gleichen 3 Blöcken anfängt. Habe ich allerdings hier nicht implementiert.


  • fluffybunny und rat123 gefällt das

#2
fluffybunny

fluffybunny

    Pentester

  • Premium Member
  • Likes
    23
  • 119 Beiträge
  • 7 Bedankt

sehr cool B) wie lange codest du schon in c++?



#3
gr33d

gr33d

    Pentester

  • Premium Member
  • Likes
    169
  • 130 Beiträge
  • 472 Bedankt
  • Android [root]
  • Windows, Linux

Nicht lange (zwangsläufig da ich noch nicht so alt bin ^^) aber sowas ist ja auch nicht schwer. Freut mich wenn es jemand brauchen kann. Wichtig ist, dass man Junk code einbaut und es nicht einfach beendet sondern eine Endlosschleife verwendet weil sonst "nicht genug Informationen" gesammelt werden konnten.

Aufgrund der Tatsache, dass man die komplette Hybrid-Analyse mit so ein paar Zeilen Code umgehen kann finde ich die Voraussetzung des Scans bei Downloads auch ein wenig überflüssig.


Bearbeitet von gr33d, 11 March 2017 - 20:33 Uhr.




  Thema Forum Themenstarter Statistik Letzter Beitrag

Dieses Thema wurde von 40 Mitglied(ern) gelesen


    13asim37, Bot4ng, Caruso, decent, DeepWater, EviLByteS, fluffybunny, Framerater, Freshpolak, gr33d, hacke2010, hacked, Hansiberg, JohnR, keyb0ardz, kiwitone, Kraenk, leonalexkraus, lolorollo, most_uniQue, nong_dan, o0o, ObbedCoder, pi^2, Platin, Rastajan, rat123, rsneumann, SecurityFlaw, SepaX, Stronghold, sub0, Terrafaux, x1z0ng, xVirtu, xxas, yq8, Yuka, Zorrez, zrty
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.