EG Information
Training Missions
Knowledge Bank
Pimp Us Out!
Has Enigma Group Helped You? Then Help Us By Advertising For Us. Place One Of The Following Images On Your Site And Create A Link Back To Enigma Group.
|
| |
Affiliates
|
|
Enigma Group's Code Bank
uBF interpreterBy: Ultraminor - Date Submitted: 2010-12-10 23:00:44 //uBF.c - an interpreter for the BrainF~ programming language #include <stdio.h> #include <stdlib.h> //Windows-specific code #include <conio.h> #define GET_CHAR _getch //End #define BUFFERING_SIZE 2048 int main(int argc, char **argv) { puts("uBF interpreter, by Ultraminor"); if(argc<2) { puts("Usage: ubf <source file>"); return 0; } FILE *inputFile=fopen(argv[1],"rb"); if(!inputFile) { puts("Unable to open source file for reading"); return 1; } unsigned char *memory=malloc(sizeof(unsigned char)*BUFFERING_SIZE); if(!memory) { puts("Unable to allocate memory"); return 1; } unsigned char *source; long sourceSize; if( fseek(inputFile, 0, SEEK_END)|| (sourceSize=ftell(inputFile))==-1|| !(source=malloc(sizeof(unsigned char)*sourceSize))|| fseek(inputFile, 0, SEEK_SET)|| fread(source, 1, sourceSize, inputFile)!=sourceSize ) { puts("Unable to load source from input file"); return 1; } fclose(inputFile); unsigned int memoryPointer=0, memorySize=BUFFERING_SIZE, instructionPointer,i; int charBuffer; for(i=0;i<BUFFERING_SIZE;i++) { memory[i]=0; } for(instructionPointer=0;instructionPointer<sourceSize;instructionPointer++) { switch(source[instructionPointer]) { case '+': memory[memoryPointer]++; break; case '-': memory[memoryPointer]--; break; case '>': memoryPointer++; if(memoryPointer==memorySize) { memorySize+=BUFFERING_SIZE; memory=realloc(memory, sizeof(unsigned char)*memorySize); if(!memory) { puts("Unable to allocate memory"); return 1; } for(i=memoryPointer;i<memorySize;i++) { memory[i]=0; } } break; case '<': if(memoryPointer>0) { memoryPointer--; } break; case '.': putchar(memory[memoryPointer]); break; case ',': charBuffer=GET_CHAR(); if(charBuffer!=EOF) { memory[memoryPointer]=charBuffer; } break; case '[': if(!memory[memoryPointer]) { i=1; while(i>0&&instructionPointer<sourceSize) { instructionPointer++; if(source[instructionPointer]==']') { i--; } else if(source[instructionPointer]=='[') { i++; } } } break; case ']': if(memory[memoryPointer]) { i=1; while(i>0&&instructionPointer>0) { instructionPointer--; if(source[instructionPointer]==']') { i++; } else if(source[instructionPointer]=='[') { i--; } } } } } return 0; }
|
| Return to
c category list |
|
|
Who Visited EnigmaGroup Today?
1379 Guests, 225 Users (218 Spiders)
TheCheeseDemon, Pabz, plex, rockcraft, recoveryToolbox, Edika, saraf, soufiaane, sickmind, cat1vo, tgm001, mjneat, famous0123, Galagatron, dark_void, CJ_Omaha, junaid_junaid59, JohnJohnJohn, ssmaslov, psychomarine, Dregoon, Patrickk, Aska, Beat_Slayer, M0rdak, Ausome1, Imre, Vreality2007, mmndglxuwn, m0rt, unholyblood, iterrumzz, VurbTrurb, Mayonoula, MAMWOURBROR, mutabor, gobinda, cossyDrybrich, Razin, zaCruBumas8, hunja, johny34, pantoufle, bagy, arctica, hackarchives, UsedDeteKef, Peculator, Fadhilat606, TheTrueMonarch, Pascall01, hackaday, Tjm, arndevil, flairvelocity, lol, alphbond, kdivanov, elizbethallis6, Rik, bn11, BorgBot, SHASHANK101hello, 4poc4lyptic, ksajxai, nbmorri1, electro-technic, شمالي عرعر, lamb, AutobotPrime, Underleaf, The End, tomtombomb, killobyte, snowgirlx, so_saucey, zerolife, Althor, Cramps, Hekser, Hyperborn, cyber-guard, jhgrunn, cobra, Partisan, MAZI_, cyborg, GenbreedX, moel77, cliptoX, pwnpwnlolz, letshavepie, Mrwormz, yshiau, mirmo, roozyoppomo, soft_devil, cls777, scoobywan, Reiversed, joshua, st3alth, Afrika, PaiffDryday, venter, Anthony12796, sh3llcod3, 8FIGURE, Rannim, Evil1, maloaboy, BACanON, SlayingDragons, Repuhlsive, IvanDimitriev, lolzsec, 1RiB, mzungudo, Micro_Geek, iMaxx, aciboummamymn, k0unterkulcher, somebody777, m14m16, GoododotAlcob, negasora, Rastii, UninueMem, Swifsolja, ad.conquest, ngolatkar, Infinity8, Jigoku, thesupervisor, p0is0n5ting, kernel_mod, AKL, GothicLogic, themastersinner, dnatrixene135, ChewBigRed, kalak55, sejem, cve916, pollolololo, triecturn, Violatedsmurf, Ops, jmp, xsiemich, generalisimo, strudels, ga3ttpom, KingOfBritains, epoch_qwert, suten, FriskyKat, Ryuske, Adonis Achilles, ubqbcdzzhf, 3vil, Nightraven, US£RNAM£, Weindittewcon, Batesheelocot, GSmyrlis, MaxMeier, Elite.America, rabbidmind, Psiber_Syn, phoenix22, imittyerrotte, peewster, cyberturtle, ctb, dexgeda, sdw, Pizza, White_widdow, devarian, finesse, Nature112091777, Danc7171, Alphadragon, Estadagause, 53QR10U5, Xargos, Alkomage, hardlock, Barry Gonzoles, MineDweller, Gkjt, N4g4c3N, [I]nfectedbug, wimsteege, aqr5zdcw, xin214, Bugshuppy, SnoopSky, Hessesian, voodooKobra, sKcarr, IROverRated, W1F1G3NJU75U, Baddy, ziadmosaan, gamble86, realzs, CruelDemon, Shinju, aVoid, aquiredanonymity, kukumumu, web_request, callmeneon, KissMyDAFFODIL, Feld Grau, Abhinav2107, prabhataditya, mbuyiselo, shumer, phenom216, princennamdi, huskyboiza, ninety-nine |
| |
|
|
|
|
|