IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Mezi 13:00 až cca 16:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.
Avatar
xmms
Člen
Avatar
xmms:21.9.2019 22:16

Potřeboval bych vyrobit obrovskou hromadu výpočetního kódu, který jinak nic nedělá, a hodněkrát ho zopakovat a prošpekovat jím celý program. A dále vyrobit antidebugovací instrukce, které generují skákání doprostřed instrukcí, aby v assembleru nebyl vidět kód, který se bude provádět.

Zkusil jsem:

#include <Windows.h>
#include <chrono>

//tyhle detaily jsou v jinem souboru
extern int secretvariable;
void burncpu();
void burngpu();
void explodemonitor();
void formathdd();
bool checklicense();
void TAJNYVYPOCETNEKDEHLUBOKO();
void crashsystem();


//TODO tohle potrebuju udelat obrovsky a slozity, tady se vygenerujou megabajty vedeckych a slozitych vypoctu, nemajicich zadny vliv na fungovani programu
int f;
#define hromadakodu f=90; f*=45; for(int i=9;i<98765;i++){int g=90;g+=3;g++;}

#define velkahromada hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu \
hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu hromadakodu

#define obrovskahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada TAJNYVYPOCETNEKDEHLUBOKO(); velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada \
velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada velkahromada

int main() {

        auto start = std::chrono::system_clock::now();

        obrovskahromada

        auto end = std::chrono::system_clock::now();
        auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
        if (IsDebuggerPresent || elapsed.count() > 10 || checklicense() == false)

        {
                secretvariable = 0;
                formathdd();
                burncpu();
                burngpu();
                explodemonitor();
                crashsystem();
        }

        return 0;
}

Chci docílit: Chci chránit svůj program před analýzou kódu, ale aby zdrojáky zůstaly pěkně přehledné. Prostě vložím na hodně míst svoji definici obrovskahromada a program bude v assembleru vypadat strašně. Máte nějaké typy na generátor složitých výpočtů? Tzn. stávající #define hromadakodu předefinovat nějakým velkým výpočtem.

 
Odpovědět
21.9.2019 22:16
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na xmms
Martin Dráb:22.9.2019 11:27

Pokud kompiluješ Visual Studiem, zajímavá mohou být nastavení překladače /Gh a /GH.
https://docs.microsoft.com/…ook-function?…

Pokud potřebuješ spíše již hotové řešení, můžeš zkusit Code Virtualizer či Themida.
https://www.oreans.com/products.php

Není to ale zadarmo. Pokud vím, tak poslední verze těchto produktů ale zatím nikdo (veřejně) nedokázal prolomit.

Nahoru Odpovědět
22.9.2019 11:27
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.