Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Source] PcBlock


Rekomendowane odpowiedzi

Opublikowano

Witam.

Tak z nudów i z powodu iż mieszkam w bursie, a nie lubię jak ktoś grzebie mi w lapku to naklepałem sobie taki zmyślny programik coby blokował komputer :D

Program blokuje explorera i menadżer zadań i wywala prompt o wpisanie hasła. Nie wpiszesz hasła - nie ma opcji żebyś przeszedł. W połączeniu z hasłem na BIOS/profil, zabezpieczenie praktycznie nie do obejścia.

Program jest w dwóch plikach, jeden "główny" blokuje peceta a drugi utrzymuje ten "główny" przy życiu, jakby ktoś próbował zamknąć okno

 

Jeśli ktoś ma pomysł jak obsłużyć WM_CLOSE żeby nie dało się zamknąć okienka to bardzo prosiłbym o pomoc :D

 

Jak odpalić? Kompilujemy oba pliki, plik pcblock.exe (ten główny) umieszczamy gdzieśtam na dysku, można ustawić atrybuty "ukryty" itp., oczywiście wcześniej ustawiamy w nim hasło, potem w pcblock_def (tym "trzymającym" ustawiamy ścieżkę do pcblock.exe i kompilujemy, a następnie możemy go uruchomić.

Uruchamiamy z pcblock_def, nie z pcblock.

 

Kod:

 

pcblock (główny)

 

#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
#include <string>

using namespace std;

int killprocess(char* target, bool flag);
DWORD WINAPI blocksys();
int main();
void sethook();
void hidewind();
void showwind();
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);

HWND winarray[256];
int i = 0;

void hidewind()
{
	for (int a = 0; a <= i; a++)
	{
		ShowWindow(winarray[a], SW_HIDE);
	}
}

void showwind()
	{
	for (int a = 0; a <= i; a++)
	{
		ShowWindow(winarray[a], SW_SHOW);
	}
}

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
	char title[80];
	char mytitle[80];
	if (hwnd)
	{
		GetWindowText(hwnd,title,sizeof(title));
		GetWindowText(GetConsoleWindow(),mytitle,sizeof(mytitle));
		if (strcmp(title, mytitle) && IsWindowVisible(hwnd) && strcmp(title, "frmMiniStatus"))
		{
			winarray[i] = hwnd;
			i++;
		}
		
	}

	return TRUE;
}

DWORD WINAPI blocksys()
{
	while (1)
	{
		killprocess("explorer.exe", true);
		killprocess("taskmgr.exe", true);
		Sleep(100);
	}
	return 0;
}

int killprocess(char* target, bool flag)
{
	PROCESSENTRY32 entry;
	entry.dwSize = sizeof(PROCESSENTRY32);

	HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

	if (Process32First(snapshot, &entry) == TRUE)
	{
		while (Process32Next(snapshot, &entry) == TRUE)
		{
			if (strcmp(entry.szExeFile, target) == 0)
			{
				if (flag == true)
				{
					HANDLE hproc = OpenProcess(PROCESS_TERMINATE, FALSE, entry.th32ProcessID);
					TerminateProcess(hproc, 0);
					CloseHandle(hproc);
				}
				else
				{
					return entry.th32ProcessID;
				}
			}
		}
	}

	CloseHandle(snapshot);
	return 0;
}

int main()
{
	HANDLE blockthr = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)blocksys, NULL, NULL, NULL);
	EnumWindows(EnumWindowsProc, NULL);

	hidewind();
	string psw = "haslo";
	string read = "";
	while (1)
	{
		cin >> read;
		if (psw == read)
		{
			TerminateThread(blockthr, 0);
			showwind();
			ShellExecute(NULL, NULL, "explorer.exe", NULL, NULL, SW_SHOW);
			killprocess("pcblock_def.exe", true);
			return 0;
		}
	}
	return 1;
}

 

 

pcblock_def (ten utrzymujący, z niego odpalamy pcblock'a)

 

#define _WIN32_WINNT 0x0500

#include <Windows.h>
#include <tlhelp32.h>

#include <stdio.h>
#include <conio.h>

int getprocess(char* target)
{
	PROCESSENTRY32 entry;
	entry.dwSize = sizeof(PROCESSENTRY32);
	
	HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
	//puts("start getprocess");
	//Sleep(500);

		if (Process32First(snapshot, &entry) == TRUE)
		{
			//puts("proc32first");
			//Sleep(500);
			while (Process32Next(snapshot, &entry) == TRUE)
			{
				//puts("proc32next");
				//Sleep(100);
				if (strcmp(entry.szExeFile, target) == 0)
				{
						//printf("znaleziono proces\nPID: %i\n", entry.th32ProcessID);
						//getch();
					HANDLE hproc = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, entry.th32ProcessID);
					DWORD code;
					GetExitCodeProcess(hproc, &code);

					//printf("pobrano exitcode: %i\n", code);
					//getch();

					while (code == STILL_ACTIVE)
					{
						//puts("proces aktywny");
						Sleep(300);
						GetExitCodeProcess(hproc, &code);
					}

					//printf("proces zamkniety, exitcode: %i\n", code);
					//getch();
					ShellExecute(NULL, NULL, "C:\\pcblock.exe", NULL, NULL, SW_SHOW);
					CloseHandle(hproc);
					//printf("uruchomiono proces\n sciezka: %s\n", target);
					//getch();
				}
			}
		}

	CloseHandle(snapshot);
	return 0;
}

int main()
{
	HWND console = GetConsoleWindow();
	ShowWindow(console, SW_HIDE);
	ShellExecute(NULL, NULL, "sciezka_do_pcblock.exe", NULL, NULL, SW_SHOW);
	//puts("odpalono bloker");
	while (1)
	{
		//puts("getprocess");
		getprocess("pcblock.exe");
	}
	return 0;
}

 

 

Enjoy! Uwagi do kodu proszę pisać, bo nie jestem nieomylny a w C++ jeszcze nie jestem tak super ogarnięty.

846331404756772371599.jpeg
Opublikowano
Opublikowano

Ale jak zakładasz hasło (nie jestem pewien czy teraz dobrze mowię) to ci zatrzymuje po wylogowaniu download, rendering czy co tam jeszcze robisz, a tu nie.

 

Sopel, wiem, ale to taka prowizorka, u mnie w bursie raczej nikt w disassembling się nie bawi, a exeka z programem nie dostanie :D

846331404756772371599.jpeg
Opublikowano

 

Ale jak zakładasz hasło (nie jestem pewien czy teraz dobrze mowię) to ci zatrzymuje po wylogowaniu download, rendering czy co tam jeszcze robisz, a tu nie.

 

Sopel, wiem, ale to taka prowizorka, u mnie w bursie raczej nikt w disassembling się nie bawi, a exeka z programem nie dostanie :D

Nawet nie trzeba się w to bawić. Wystarczy przejrzeć exeka w poszukiwaniu sekcji ze stringami i znaleźć coś co wygląda jak hasło
Opublikowano

na windows 7/8 nic ci nie zatrzymuje, wywala tylko ekran logowania, i cos w rodzaju wpisz haslo do uzytkownika kupa aby sie zalogowac, wiec program bez sensu. w sumie to nawet mniejsze zabezpieczenie niz haslo, bo jak wlaczysz w awaryjnym to sie nie odpala autostart, pozdro

 

z ciekawosci napisalem takie proste cos:

 

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string haslo = "dupa", wejscie;
	cout<<"podaj haslo: ";
	cin>>wejscie;
	if(wejscie==haslo)cout<<"Udalo ci sie!";
	else cout<<"DUPA";

	return 0;
}
a tak wyglada exek w notepadzie++ :D

 

HZHppA1.png

 

pozdro x2 xD

Opublikowano

i po co to, zakladasz haslo na konto, i ctrl+l i masz zablokowany pc, co taki gimbus moze? nic

Kon-Boot lub inne podobne narzędzie i hasło na profil Ci nic nie da ;)

9obpmnjr.png

Opublikowano

zkumeku, my mowimy tu o gimbazie, przeciez jesli masz fizyczny dostep do kompa to mozesz zrobic co tylko chcesz

md5 tez pewnie zaszyfrujesz do stringa? i co ci to da, skoro prosto mozna napisac program wyszukujacy ciag danych w exeku, wystarczy poszukac literek jakichs zwyklych, dalej zadne zabezpieczenie, bo md5 bez salta zlamiesz na kompie w domu

Opublikowano

zkumeku, my mowimy tu o gimbazie, przeciez jesli masz fizyczny dostep do kompa to mozesz zrobic co tylko chcesz

md5 tez pewnie zaszyfrujesz do stringa? i co ci to da, skoro prosto mozna napisac program wyszukujacy ciag danych w exeku, wystarczy poszukac literek jakichs zwyklych, dalej zadne zabezpieczenie, bo md5 bez salta zlamiesz na kompie w domu

 

Ta... ale ten temat sam w sobie dotyczy zabezpieczenia przed fizycznym dostępem, co jest nieco śmieszne - co człowiek zamknął, to człowiek otworzy. Gimbazjum, to nie znaczy, że są mniej kreatywni od nie jednego starszego. ;)

 

Jutro siedzę w domu a akurat tak się składa że mam algorytm MD5 w C++ na kompie... :3

A tu gotowiec:

http://www.zedwood.com/article/cpp-md5-function

9obpmnjr.png

Opublikowano

md5 i ten jego program zadne zabezpieczenie nawet przed fizycznym atakiem, pewnosc da ci kurwa zaszyfrowanie dysku 2048bitowym rsa xD

I wieki spedzone przy szyfrowaniu duzych dyskow lub straty przy problemach z odkodowaniem ;)

 

Nie zapominajac o dodatkowym spadku mocy systemu (no bo np. W tle szyfruje)

9obpmnjr.png

Opublikowano

nie zrozumiales mnie, pozdrowienia dla ciebie xD

Niestety akurat bardzo Cie zrozumialem, wiec nie nadmuchuj sie tak ;)

 

Dzialanie podobne na zasadzie wirusa CryptoLocker.

9obpmnjr.png

Opublikowano

Zkumeku, tak się składa że akurat z tej strony mam ten kod :D

To nie gimbaza akurat, tylko techbaza na kierunek teleinformatyk, jednakowoż na tej wojciechowskiej jest o wiele bardziej kładziony nacisk na "tele" oraz "elektronika" niż na "informatyka" (na infie męczymy exeka a programowanie (prawdopodobnie) w PASCALU będziemy mieli w 3/4 klasie...), a że ja mieszkam w bursie na takim skrzydle że szczerze nie sądzę żeby ktokolwiek nawet wpadł na pomysł otworzenia .exe w notatniku, a co dopiero łamaniu hasła :D

To zabezpieczenie wystarczy w 100%, gorzej jak trafisz do bursy pełnej informatyków. Tutaj prosów nie znajdę, to wiecie ;)

 

a tak swoją drogą to tutaj latają wszyscy z netcutami i próbują odciąć ludzi od neta nie zdając sobie sprawy że router jest zabezpieczony przed tym xD... tak więc poziom ogarnięcia zaiste wielki.

846331404756772371599.jpeg
Opublikowano

Pan up wrzucił prosty programik żeby pokazać jak mozna zrobić w celach edukacyjnych aplikacje pytajaca o haslo a ci mu wytykają że można złamać. Czy on pisał że wymyślił zabezpieczenie do serwerow pentagonu? Podejrzewam ze jego celem była nauka a udostępnił aby inni mogli sobie kod obejrzeć. Jak nie macie konstruktywnych propozycji to sobie odpuście te komentarze.

void_bit.jpg

Opublikowano

Pan up wrzucił prosty programik żeby pokazać jak mozna zrobić w celach edukacyjnych aplikacje pytajaca o haslo a ci mu wytykają że można złamać. Czy on pisał że wymyślił zabezpieczenie do serwerow pentagonu? Podejrzewam ze jego celem była nauka a udostępnił aby inni mogli sobie kod obejrzeć. Jak nie macie konstruktywnych propozycji to sobie odpuście te komentarze.

Widać, że szanowny Pan czytać nie umie... cytuję:

 

Witam.

Tak z nudów i z powodu iż mieszkam w bursie, a nie lubię jak ktoś grzebie mi w lapku to naklepałem sobie taki zmyślny programik coby blokował komputer :D

Program blokuje explorera i menadżer zadań i wywala prompt o wpisanie hasła. Nie wpiszesz hasła - nie ma opcji żebyś przeszedł.

(...)

Program jest w dwóch plikach, jeden "główny" blokuje peceta a drugi utrzymuje ten "główny" przy życiu, jakby ktoś próbował zamknąć okno

Więc polecam poczytać co autor napisał, a nie pokazał że stworzył po prostu.

9obpmnjr.png

Opublikowano

Zresztą, mi nie chodziło o złamanie programu kiedy nie działa i mamy do niego dostęp (bo to każdy głupi umie), tylko żeby go udupić jak już jest włączony ._.

A wy wyjeżdżacie z hasłem w notepadzie którego nie odpalimy... Ano właśnie, chyba że mamy pendrive z autostartem którego antywirus nie zablokuje, muszę zrobić i z tym porządek :D

Ale i tak jak ustawimy atrybuty pliku na "ukryty" to w normalnym notepadzie go nie odpalimy, chyba że mamy widoczność plików ukrytych.

(damn, i na to jest obejście, durny autoboot xD)

846331404756772371599.jpeg
Opublikowano

tak trudno odpalic z live cd jakiegos linuxa, albo po prostu wlaczyc windowsa w awaryjnym? windows w awaryjnym nie uruchamia autostartu, wiec wiesz xD linux natomiast pozwala wykrasc pliki jesli nie sa zaszyfrowane

Opublikowano

Kuchwa, ale mi nie chodzi o dane xD

Ogarnij, że to odpalam sobie jak wychodzę na jakiś czas z pokoju. Żeby ruszyć linucha albo awaryjny, trzeba zrobić restart po którym wywala prompt o haśle na biosa. Biorąc pod uwagę to, że na laptopie tego nie zdejmiesz, a w moim nawet CD nie ma, to raczej to odpada...

846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...