EG Information

Main Index
EG Manual
Disclaimer
Legal Information
Hall of Fame
Hall of Shame
Member Rankings
Members List
Meet the Staff
Hacker's Home Page

Training Missions

Read Me First
Basic Skills
Realistic Scenarios
Cryptography
Software Cracking
Linux ELF Binary Cracking
Logical Thinking
Programming
Captcha Cracking
Patching
Steganography
Deface This Wall
/dev/null
/dev/urandom
/dev/extra

Knowledge Bank

Discussion Forums
Exploit Database New
PasteBin New
RSS Feeds RSS
Articles / Tutorials
Videos
Online EG MP3 Player Radio
Downloads
Tools

Code Resources

Submit Code
Ajax
ASM
Bash
C
CPP
Csharp
Delphi
Haskell
Java
Javascript
Jython
Lisp
mIRC
MySQL
Perl
PHP
Python
QBASIC
VisualBasic

Pimp Us Out!

Review enigmagroup.org on alexa.com

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.

Enigma Group

Enigma Group

Enigma Group

Enigma Group

 

Affiliates

hackhound.org

suck-o.com

hack.org.za

flyninja.net

 

Enigma Group's Code Bank


uBF interpreter

By: Ultraminor  -  Date Submitted: 2010-12-10 23:00:44

  1. //uBF.c - an interpreter for the BrainF~ programming language
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. //Windows-specific code
  7. #include <conio.h>
  8. #define GET_CHAR _getch
  9. //End
  10.  
  11. #define BUFFERING_SIZE 2048
  12.  
  13. int main(int argc, char **argv)
  14. {
  15. puts("uBF interpreter, by Ultraminor");
  16.  
  17. if(argc<2)
  18. {
  19. puts("Usage: ubf <source file>");
  20. return 0;
  21. }
  22.  
  23. FILE *inputFile=fopen(argv[1],"rb");
  24. if(!inputFile)
  25. {
  26. puts("Unable to open source file for reading");
  27. return 1;
  28. }
  29.  
  30. unsigned char *memory=malloc(sizeof(unsigned char)*BUFFERING_SIZE);
  31. if(!memory)
  32. {
  33. puts("Unable to allocate memory");
  34. return 1;
  35. }
  36.  
  37. unsigned char *source;
  38. long sourceSize;
  39.  
  40. if(
  41. fseek(inputFile, 0, SEEK_END)||
  42. (sourceSize=ftell(inputFile))==-1||
  43. !(source=malloc(sizeof(unsigned char)*sourceSize))||
  44. fseek(inputFile, 0, SEEK_SET)||
  45. fread(source, 1, sourceSize, inputFile)!=sourceSize
  46. )
  47. {
  48. puts("Unable to load source from input file");
  49. return 1;
  50. }
  51.  
  52. fclose(inputFile);
  53.  
  54. unsigned int memoryPointer=0, memorySize=BUFFERING_SIZE, instructionPointer,i;
  55.  
  56. int charBuffer;
  57.  
  58. for(i=0;i<BUFFERING_SIZE;i++)
  59. {
  60. memory[i]=0;
  61. }
  62.  
  63. for(instructionPointer=0;instructionPointer<sourceSize;instructionPointer++)
  64. {
  65. switch(source[instructionPointer])
  66. {
  67. case '+':
  68. memory[memoryPointer]++;
  69. break;
  70.  
  71. case '-':
  72. memory[memoryPointer]--;
  73. break;
  74.  
  75. case '>':
  76. memoryPointer++;
  77. if(memoryPointer==memorySize)
  78. {
  79. memorySize+=BUFFERING_SIZE;
  80. memory=realloc(memory, sizeof(unsigned char)*memorySize);
  81. if(!memory)
  82. {
  83. puts("Unable to allocate memory");
  84. return 1;
  85. }
  86.  
  87. for(i=memoryPointer;i<memorySize;i++)
  88. {
  89. memory[i]=0;
  90. }
  91. }
  92. break;
  93.  
  94. case '<':
  95. if(memoryPointer>0)
  96. {
  97. memoryPointer--;
  98. }
  99. break;
  100.  
  101. case '.':
  102. putchar(memory[memoryPointer]);
  103. break;
  104.  
  105. case ',':
  106. charBuffer=GET_CHAR();
  107. if(charBuffer!=EOF)
  108. {
  109. memory[memoryPointer]=charBuffer;
  110. }
  111. break;
  112.  
  113. case '[':
  114. if(!memory[memoryPointer])
  115. {
  116. i=1;
  117. while(i>0&&instructionPointer<sourceSize)
  118. {
  119. instructionPointer++;
  120. if(source[instructionPointer]==']')
  121. {
  122. i--;
  123. }
  124. else if(source[instructionPointer]=='[')
  125. {
  126. i++;
  127. }
  128. }
  129. }
  130. break;
  131. case ']':
  132. if(memory[memoryPointer])
  133. {
  134. i=1;
  135. while(i>0&&instructionPointer>0)
  136. {
  137. instructionPointer--;
  138. if(source[instructionPointer]==']')
  139. {
  140. i++;
  141. }
  142. else if(source[instructionPointer]=='[')
  143. {
  144. i--;
  145. }
  146. }
  147. }
  148. }
  149. }
  150.  
  151. return 0;
  152. }
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
 
Enigma Group