Pitanje:
Zamućenje izvršnih programa za Windows
mrduclaw
2013-03-23 14:34:53 UTC
view on stackexchange narkive permalink

GCC vam omogućuje pisanje dodataka za optimizaciju koji se mogu koristiti za zamagljivanje vaše kompajlirane izvršne datoteke, ali ovo nije preneseno na mingw . LLVM dopušta nešto slično, ali barfs kada uključuje Windows.h.

Postoji li kompajler koji će mi omogućiti pristup AST-u neposredno prije vremena povezivanja i stvaranje Windows izvršne datoteke ?

Zašto vam treba `windows.h` * u kompajleru *?
Puno se radilo na tome da se zvecka za rad na prozorima. Postoje neke zastavice koje biste trebali proći (poput -fms-extensions). Mislim da se u ovom trenutku clang tim oglašava da rade na windows.h, znam da sam to već radio ...
@IgorSkochinsky Molim vas, oprostite na mom neznanju, je li to bilo malo u Microsoftu ili radim nešto potpuno pogrešno?
@Andrew Pokušao sam prethodno proslijediti `-fms-extensions`, ali naišao je na probleme. Prošlo je nekoliko mjeseci, možda je to sada popravljeno. Hvala.
"Zamračivanje" postavlja jedno pitanje: zašto? Što želite postići?
@0xC0000022L Pretpostavljam da "Želio bih postići neku razinu zamagljenosti" nije dovoljan? Po mom mišljenju, ovo je povezano s pitanjem o skrivanju artefakata kompajlera kao sredstvu koje otežava obrnuti inženjering.
@mrduclaw: shvaćam. Ne, ima smisla na ovaj način. Međutim, pretpostavljam da artefakti koje biste također morali tretirati u takvom slučaju uključuju i stvari koje se povežu u binarnu datoteku. Tj. ne samo stvari koje kompajlirate već i ono što * povezujete *, poput `libgcc`.
@0xC0000022L Slažem se, i dalje bi bilo nekih problema. Ali promjena prologa i epiloga funkcije mogla bi ionako biti zabavna.
Dva odgovori:
#1
+7
Rolf Rolles
2013-04-03 14:02:34 UTC
view on stackexchange narkive permalink

Nekoliko stvari koje biste mogli pogledati:

Da malo pojasnimo: knjiga je vrlo dobra, ali zapravo se ne radi o tome kako pisati (proširenja) za određene kompajlere. Prije pokriva temeljne koncepte pretvorbe programa kako bi se zamjene primijenile na programe općenito.
#2
+2
newgre
2013-04-03 13:26:16 UTC
view on stackexchange narkive permalink

Postojala je infrastruktura kompajlera pod nazivom phoenix (također pogledajte wikipedia). Čak sam je koristio i za neke pretvorbe programa, ali nažalost nikada nije uspio izvan onoga što MS naziva "Pregled tehnologije zajednice (CTP)". Sada se čini mrtvim, dobivam 404 za svaku od veza na MS stranici istraživanja, pa mi se čini da je ovaj projekt prekinut.

Ako ste zainteresirani za korištenje LLVM / CLANG na Windows koji biste možda željeli pogledati na ovoj stranici, koja nudi proširenje za korištenje LLVM-a unutar VS. Pokušao sam kratko i ne mogu reći puno o tome, ali trebao bi vam omogućiti kompajliranje i izgradnju proširenja za LLVM na sustavu Windows.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...