Che Posted October 21, 2015 Report Posted October 21, 2015 Sa zicem ca as vrea sa fac un program in care utilizatorul alege niste functii anume pe care sa le faca programul lui si apoi sa-i dea "BUILD" si sa iasa un nou program care sa faca ceea ce a ales el sa faca (bineinteles, cu parametrii alesi de el).Care sunt metodele pe care le-as putea folosi in programul meu pentru a crea acel executabil pe care-l doreste utilizatorul ?Stiu ca e o functie write_bytes sau asa ceva in vb.net, ce face ea mai exact ? Face tot acelasi lucru ca si cum utilizatorul ar da copy paste la codul programului dorit in Visual Studio C++ ? Exista si in C++ asa ceva ? Ce anume ? Quote
S.L.C Posted October 21, 2015 Report Posted October 21, 2015 Trebuie sa fie executabil? Trebuie sa fie in C/C++? Nu prea inteleg. Daca nu vrei sa intri in detalii aici poate intr-un PM. Quote
em Posted October 21, 2015 Report Posted October 21, 2015 Salut,Tu practic vrei s? faci un builder de virus? Asta am citit printre rânduri.Ai putea defini în programul t?u o variabil? 0xdeadbeef.De exemplu int x = 0xdeadbeef;În builder tu o s? faci replace la acea variabil? cu altceva. În func?ie de ce ai înlocuit, vei face un switch în program la runtime, care s? fac? altceva în fun?ie de ce e acolo.Dac? asta nu merge po?i declara un char în programchar x[20] = "mama are mere"La fel, înlocuie?ti în builder acest string cu altceva, ?i faci ceva în fun?ie de ce e acolo. O s? revin cu un demo pe linux. Quote
Che Posted October 21, 2015 Author Report Posted October 21, 2015 Trebuie sa fie executabil? Trebuie sa fie in C/C++? Nu prea inteleg. Daca nu vrei sa intri in detalii aici poate intr-un PM.Ai un program facut in C++, sa-l numim Programul A.Il deschizi si are il el GUI-ul de asa natura incat sa poti alege sa creezi vizual niste functii carora le dai si parametri.Spre exemplu, unu intra in program si vrea sa-si creeze un cripter:Alege dintr-o lista AES256, apoi mai alege si Base64 si apoi Atom128 si alege x3 si in final AER256 cu parola "MyPassword".Apoi da click pe "BUILD" si Programul A creaza acum un alt program numit Programul B care este un cripter care iti cripteaza orice executabil o data cu AES256, apoi cu base64 o data si apoi cu atom128 de 3 ori si in final il mai cripteaza o data cu AER256 cu parola "MyPassword".Programul A este un executabil in C++ .exe, tot la fel si Programul B.@em Quote
Nytro Posted October 21, 2015 Report Posted October 21, 2015 (edited) Vezi asta: https://ro.wikipedia.org/wiki/Automat_finitCat despre "compilare", adica din cod sursa sa faci un executabil... Fa pentru inceput ceva simplu:1. Creezi un automat finit2. Procesezi un limbaj simpluEx. write(123)Creezi o sintaxa bine pusa la punct. Mai exact, iei caracter cu caracter si: a. Ai o litera? Hmm, pare sa fie numele unei functii. Mergi mai departeb. Urmatorul caracter e "("? Inseamna ca s-a terminat numele functiei ("write") si urmeaza un parametruc. Urmatorul caracter e ")"? Inseama ca "123" e parametru pentru "write"Acestea sunt stari. Cele in cerculet sunt stari. Liniile inseamna procesare caracter cu caracter si starea in care se trece.De exemplu, din starea "functie", citesti o litera, te intorci in aceeasi stare si adaugi acea litera la numele functiei. Daca citesti insa caracterul "(" te duci in starea "param" si citesti cifra cu cifra valoarea.E un caz simplu de tot. Trebuie sa iei in considerare orice posibilitate si sa duci in starea de "eroare de compilare" daca ceva nu este in regula.3. Dupa asta, interpretezi acel limbaj al tau.E frumos ce vrei sa faci dar poate fi complicat. Cauta despre teoria compilatoarelor, sunt multe articole, ce am zis eu e doar o idee, poate sa nu fie cea mai buna.Apoi, daca vrei "exe" trebuie sa transcrii din acel automat finit in limbaj de asamblare. Daca reusesti asta, o sa poti asambla in cod executabil, creezi un fisier PE (Portable Executable, strucutra exe) gol, pui Entrypoint catre o sectiune ".text" (sau ce nume vrei tu) care e "readable and executable" si acolo pui acel cod. Daca ai date, o sa iti trebuiasca o sectiune speciala. E prea complicat.Incearca ceva interpretat simplu, un script ca acel "write(123)".--------------------------------------------------------------------Acum am vazut ce vrei sa faci de fapt.Un crypter functioneaza asa:1. Ai un EXE deja creat2. Pui "la final" sau "la interior" fisierul cryptat3. Pui niste date de configurare, ca mai susIn acele date de configurare specifici encryptia si poate cheia. Sau ii pui o metoda de a primi cumva, de undeva, cheia de decryptare.Cat despre cum functioneaza un crypter, nu e asa simplu: trebuie sa incarci in memorie un executabil. Insa gasesti mult cod sursa din care poti invata, dar o sa iti ia ceva timp. Edited October 21, 2015 by Nytro Quote
S.L.C Posted October 21, 2015 Report Posted October 21, 2015 Dar de ce nu creezi un plugin-system si un fisier text care descrie procesul (pipeline) pe care il vrei.Lista gen:AES256, Base64, Atom128:3Executabilul principal. Citeste lista, cauta DLL-urile specificate, si chiama functia specifica in fiecare plugin cu datele specificate urmat ca plugin-ul sa comunice inapoi datele procesate si tot asa pana ce se termina lista. Quote
Che Posted October 22, 2015 Author Report Posted October 22, 2015 Hai ca dau un exemplu concret ca sa fiu cat mai clar:Ati auzit de uBot Studio ? Poti face diferite programele in el. Ca si cum ar fi un fel de compilator.La asta ma refer, cum poti sa faci asta ? Quote