Update Astatine/main.cpp

This commit is contained in:
zyqunix 2025-05-13 17:34:10 +02:00
parent 01242cce84
commit def158c8e9

View file

@ -2,7 +2,6 @@
#include <cmath>
#include <mmsystem.h>
#include <thread>
#include <atomic>
#include <math.h>
#define M_PI 3.14159265358979323846
@ -10,10 +9,6 @@
BOOL WINAPI SetProcessDPIAware(void);
std::atomic<bool> stopThread0(false);
std::atomic<bool> stopShader1(false);
std::atomic<bool> stopPayload(false);
DWORD xs;
VOID SeedXorshift32(DWORD dwSeed) {
xs = dwSeed;
@ -76,7 +71,7 @@ DWORD WINAPI bounce(LPVOID lpParam) {
int x = 10, y = 10;
int increment = 10;
while (!stopThread0.load()) {
while (1) {
HDC hdc = GetDC(NULL);
if (!hdc) break;
@ -108,7 +103,7 @@ DWORD WINAPI triangle(LPVOID lpParam) {
int increment = 10;
float angle = 0.0f;
while (!stopThread0.load()) {
while (1) {
HDC hdc = GetDC(NULL);
if (!hdc) break;
@ -290,7 +285,7 @@ DWORD WINAPI shader1(LPVOID lpParam) {
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(nullptr, w * h * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (!stopShader1.load()) {
while (1) {
HDC desk = GetDC(NULL);
if (!desk) break;
@ -427,6 +422,247 @@ DWORD WINAPI shader5(LPVOID lpParam) {
return 0;
}
DWORD WINAPI shader6(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL);
HDC memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * sizeof(_RGBQUAD), data);
double angle = GetTickCount() / 1000.0;
double cosA = cos(angle), sinA = sin(angle);
int cx = w / 2, cy = h / 2;
_RGBQUAD* temp = (_RGBQUAD*)VirtualAlloc(0, w * h * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!temp) break;
for (int y = 0; y < h; y++) {
int offset = (int)(10 * sin(y / 15.0 + GetTickCount() / 10.0));
for (int x = 0; x < w; x++) {
int srcX = x - offset;
int dx = srcX - cx;
int dy = y - cy;
int rx = (int)(cosA * dx - sinA * dy + cx);
int ry = (int)(sinA * dx + cosA * dy + cy);
if (rx >= 0 && rx < w && ry >= 0 && ry < h)
temp[y * w + x] = data[ry * w + rx];
else
temp[y * w + x] = { 0 };
}
}
SetBitmapBits(hbm, w * h * sizeof(_RGBQUAD), temp);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
VirtualFree(temp, 0, MEM_RELEASE);
DeleteObject(hbm);
DeleteDC(memDC);
ReleaseDC(NULL, desk);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader7(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL);
HDC memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * sizeof(_RGBQUAD), data);
_RGBQUAD* temp = (_RGBQUAD*)VirtualAlloc(0, w * h * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!temp) break;
int cx = w / 2, cy = h / 2;
double time = GetTickCount() / 200.0;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
int dx = x - cx, dy = y - cy;
double dist = sqrt(dx * dx + dy * dy);
int offset = (int)(10 * sin(dist / 20.0 - time));
int srcX = x + (dx * offset / (dist + 1));
int srcY = y + (dy * offset / (dist + 1));
if (srcX >= 0 && srcX < w && srcY >= 0 && srcY < h)
temp[y * w + x] = data[srcY * w + srcX];
else
temp[y * w + x] = { 0 };
}
}
SetBitmapBits(hbm, w * h * sizeof(_RGBQUAD), temp);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
VirtualFree(temp, 0, MEM_RELEASE);
DeleteObject(hbm);
DeleteDC(memDC);
ReleaseDC(NULL, desk);
Sleep(10);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader8(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * 4, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL), memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * 4, data);
double t = GetTickCount() / 300.0;
for (int i = 0; i < w * h; i++) {
data[i].r = (BYTE)(data[i].r * fabs(sin(t)));
data[i].g = (BYTE)(data[i].g * fabs(sin(t + 1)));
data[i].b = (BYTE)(data[i].b * fabs(sin(t + 2)));
}
SetBitmapBits(hbm, w * h * 4, data);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
DeleteObject(hbm); DeleteDC(memDC); ReleaseDC(NULL, desk);
Sleep(16);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader9(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * 4, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL), memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * 4, data);
for (int y = 0; y < h; y++) {
int offset = (int)(10 * sin(y / 20.0));
memmove(data + y * w, data + y * w + offset, (w - abs(offset)) * sizeof(_RGBQUAD));
}
SetBitmapBits(hbm, w * h * 4, data);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
DeleteObject(hbm); DeleteDC(memDC); ReleaseDC(NULL, desk);
Sleep(16);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader10(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * 4, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL), memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * 4, data);
for (int i = 0; i < w * h; i++) {
data[i].r = 255 - data[i].r;
data[i].g = 255 - data[i].g;
data[i].b = 255 - data[i].b;
}
SetBitmapBits(hbm, w * h * 4, data);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
DeleteObject(hbm); DeleteDC(memDC); ReleaseDC(NULL, desk);
Sleep(1000);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader11(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, w * h * 4, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!data) return 1;
while (true) {
HDC desk = GetDC(NULL), memDC = CreateCompatibleDC(desk);
HBITMAP hbm = CreateCompatibleBitmap(desk, w, h);
SelectObject(memDC, hbm);
BitBlt(memDC, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * 4, data);
for (int y = 1; y < h - 1; y++) {
for (int x = 1; x < w - 1; x++) {
int i = y * w + x;
BYTE r = 0, g = 0, b = 0;
for (int j = -1; j <= 1; j++)
for (int k = -1; k <= 1; k++) {
int idx = (y + j) * w + (x + k);
r += data[idx].r / 9;
g += data[idx].g / 9;
b += data[idx].b / 9;
}
data[i].r = r; data[i].g = g; data[i].b = b;
}
}
SetBitmapBits(hbm, w * h * 4, data);
BitBlt(desk, 0, 0, w, h, memDC, 0, 0, SRCCOPY);
DeleteObject(hbm); DeleteDC(memDC); ReleaseDC(NULL, desk);
Sleep(16);
}
VirtualFree(data, 0, MEM_RELEASE);
return 0;
}
DWORD WINAPI shader12(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1);
_RGBQUAD* data = (_RGBQUAD*)VirtualAlloc(0, (w * h + w) * sizeof(_RGBQUAD), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
for (int i = 0;; i++, i %= 8) {
HDC desk = GetDC(NULL);
HDC hdcdc = CreateCompatibleDC(desk);
HBITMAP hbm = CreateBitmap(w, h, 1, 32, data);
SelectObject(hdcdc, hbm);
BitBlt(hdcdc, 0, 0, w, h, desk, 0, 0, SRCCOPY);
GetBitmapBits(hbm, w * h * 4, data);
for (int i = 0; i < w * h; i++) {
int x = i % w, y = i / h;
data[i].rgb = RGB(x % 256, y % 256, (x + y) % 256); ;
}
SetBitmapBits(hbm, w * h * 4, data);
BitBlt(desk, 0, 0, w, h, hdcdc, 0, 0, SRCCOPY);
DeleteObject(hbm);
DeleteObject(hdcdc);
DeleteObject(desk);
}
return 0;
}
DWORD WINAPI meltX(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1), x;
while (1) {
@ -437,27 +673,6 @@ DWORD WINAPI meltX(LPVOID lpParam) {
}
}
DWORD WINAPI meltY(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1), y;
while (1) {
HDC hdc = GetDC(0);
y = rand() % h;
BitBlt(hdc, 0, y, 10, h, hdc, 1, y, SRCCOPY);
ReleaseDC(0, hdc);
}
}
DWORD WINAPI meltXY(LPVOID lpParam) {
int w = GetSystemMetrics(0), h = GetSystemMetrics(1), x, y;
while (1) {
HDC hdc = GetDC(0);
x = rand() % w;
y = rand() % h;
BitBlt(hdc, x, y, 10, h, hdc, x, y, SRCCOPY);
ReleaseDC(0, hdc);
}
}
VOID WINAPI sound1() {
HWAVEOUT hWaveOut = 0;
WAVEFORMATEX wfx = { WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8, 0 };
@ -533,20 +748,6 @@ VOID WINAPI sound5() {
waveOutClose(hWaveOut);
}
VOID WINAPI sound6() {
HWAVEOUT hWaveOut = 0;
WAVEFORMATEX wfx = { WAVE_FORMAT_PCM, 1, 8000, 4000, 1, 8, 0 };
waveOutOpen(&hWaveOut, WAVE_MAPPER, &wfx, 0, 0, CALLBACK_NULL);
char buffer[4000 * 20] = {};
for (DWORD t = 0; t < sizeof(buffer); ++t)
buffer[t] = static_cast<char>(t & 64 | t >> 5) >> 4 ^ (t & sizeof(buffer) | t >> 8) * (t & 33 | t >> (t & 64 | t >> 5) ^ (t & 33 | t >> 8) ^ (t & 14 | t >> 9 | t & 76) ^ (t | 187) ^ t * (t >> 8 & 838 + t >> 13) & 644 * (t >> 8 & 838 + t >> 13)) * ((t << 1) + (t >> 7) & t >> 6) * (t & 33 | t >> 8) * (t & 33 | t >> 8) ^ (t & 32768 ? -6 * t / 7 : (t & 65536 ? -9 * t & (t >> 8 & 838 + t >> 13) : 9 * (t & 100)) / 11) * (t >> 8 & 838 + t >> 13) * (t & 14 | t >> 9 | t & 76) ^ (t | 187) ^ t * (t >> 8 & 838 + t >> 13) & 644;
WAVEHDR header = { buffer, sizeof(buffer), 0, 0, 0, 0, 0, 0 };
waveOutPrepareHeader(hWaveOut, &header, sizeof(WAVEHDR));
waveOutWrite(hWaveOut, &header, sizeof(WAVEHDR));
waveOutUnprepareHeader(hWaveOut, &header, sizeof(WAVEHDR));
waveOutClose(hWaveOut);
}
VOID WINAPI sound7() {
HWAVEOUT hWaveOut = 0;
WAVEFORMATEX wfx = { WAVE_FORMAT_PCM, 1, 8000, 8000, 1, 8, 0 };
@ -590,79 +791,120 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
NULL, NULL, hInstance, NULL
);
int r1 = MessageBox(NULL, L"Do you want to run this malware?", L"Astantine.exe", MB_YESNO | MB_ICONWARNING);
int r1 = MessageBox(NULL, L"Do you want to run this malware?", L"Astatine.exe", MB_YESNO | MB_ICONWARNING);
if (r1 == IDNO) {
exit;
} else {
int r2 = MessageBox(NULL, L"Are you REALLY sure?", L"Astantine.exe", MB_YESNO | MB_ICONWARNING);
int r2 = MessageBox(NULL, L"Are you REALLY sure?", L"Astatine.exe", MB_YESNO | MB_ICONWARNING);
if (r2 == IDNO) {
exit;
} else {
}
else {
while (1) {
HANDLE thread0 = CreateThread(0, 0, bounce, 0, 0, 0);
sound5();
Sleep(5000);
CreateThread(0, 0, textout, 0, 0, 0);
HANDLE thread1 = CreateThread(0, 0, shader1, 0, 0, 0);
sound1();
Sleep(30000);
CreateThread(0, 0, textout, 0, 0, 0);
TerminateThread(thread1, 0);
CloseHandle(thread1);
InvalidateRect(0, 0, 0);
CreateThread(NULL, 0, shader5, NULL, 0, NULL);
Sleep(100);
HANDLE thread2 = CreateThread(0, 0, pacmans, 0, 0, 0);
CreateThread(0, 0, meltX, 0, 0, 0);
sound6();
CreateThread(0, 0, shader2, 0, 0, 0);
sound2();
Sleep(30000);
TerminateThread(thread2, 0);
CloseHandle(thread2);
InvalidateRect(0, 0, 0);
Sleep(100);
CreateThread(0, 0, shader3, 0, 0, 0);
HANDLE thread3 = CreateThread(0, 0, shader5, 0, 0, 0);
HANDLE thread3 = CreateThread(0, 0, shader3, 0, 0, 0);
CreateThread(0, 0, triangle, 0, 0, 0);
sound3();
CreateThread(0, 0, shader3, 0, 0, 0);
Sleep(30000);
TerminateThread(thread3, 0);
CloseHandle(thread3);
InvalidateRect(0, 0, 0);
CreateThread(0, 0, shader5, 0, 0, 0);
Sleep(100);
HANDLE thread4 = CreateThread(0, 0, meltX, 0, 0, 0);
HANDLE thread4 = CreateThread(0, 0, shader4, 0, 0, 0);
CreateThread(0, 0, patblt, 0, 0, 0);
CreateThread(0, 0, patblt, 0, 0, 0);
CreateThread(0, 0, patblt, 0, 0, 0);
CreateThread(0, 0, patblt, 0, 0, 0);
CreateThread(0, 0, setpixel, 0, 0, 0);
sound4();
Sleep(30000);
TerminateThread(thread4, 0);
CloseHandle(thread4);
InvalidateRect(0, 0, 0);
Sleep(100);
HANDLE thread5 = CreateThread(0, 0, shader4, 0, 0, 0);
HANDLE thread5 = CreateThread(0, 0, shader5, 0, 0, 0);
CreateThread(0, 0, meltX, 0, 0, 0);
sound5();
Sleep(30000);
TerminateThread(thread5, 0);
CloseHandle(thread5);
InvalidateRect(0, 0, 0);
Sleep(100);
HANDLE thread6 = CreateThread(0, 0, wef, 0, 0, 0);
CreateThread(NULL, 0, bounce, NULL, 0, NULL);
sound4();
HANDLE thread6 = CreateThread(0, 0, shader6, 0, 0, 0);
CreateThread(0, 0, wef, 0, 0, 0);
sound7();
Sleep(30000);
CreateThread(NULL, 0, bounce, NULL, 0, NULL);
CreateThread(0, 0, shader2, 0, 0, 0);
TerminateThread(thread6, 0);
CloseHandle(thread6);
InvalidateRect(0, 0, 0);
Sleep(100);
TerminateThread(thread0, 0);
CloseHandle(thread0);
HANDLE thread7 = CreateThread(0, 0, shader7, 0, 0, 0);
CreateThread(0, 0, setpixel, 0, 0, 0);
sound8();
Sleep(30000);
TerminateThread(thread7, 0);
CloseHandle(thread7);
InvalidateRect(0, 0, 0);
HANDLE thread8 = CreateThread(0, 0, shader8, 0, 0, 0);
CreateThread(0, 0, shader9, 0, 0, 0);
sound1();
Sleep(30000);
TerminateThread(thread8, 0);
CloseHandle(thread8);
InvalidateRect(0, 0, 0);
HANDLE thread9 = CreateThread(0, 0, shader10, 0, 0, 0);
CreateThread(0, 0, shader11, 0, 0, 0);
sound2();
Sleep(30000);
TerminateThread(thread9, 0);
CloseHandle(thread9);
InvalidateRect(0, 0, 0);
HANDLE thread10 = CreateThread(0, 0, shader10, 0, 0, 0);
CreateThread(0, 0, shader11, 0, 0, 0);
sound2();
Sleep(30000);
TerminateThread(thread10, 0);
CloseHandle(thread10);
InvalidateRect(0, 0, 0);
HANDLE thread11 = CreateThread(0, 0, shader12, 0, 0, 0);
sound3();
Sleep(30000);
TerminateThread(thread10, 0);
CloseHandle(thread10);
InvalidateRect(0, 0, 0);
}
}
}
}