<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8733369160753739059</id><updated>2011-10-12T10:07:05.414-07:00</updated><title type='text'>UbuntuMongol Blogs</title><subtitle type='html'>Security and non security related information.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-4799434436615317904</id><published>2011-04-24T18:18:00.000-07:00</published><updated>2011-08-26T11:47:12.501-07:00</updated><title type='text'>Using Python and Shred to securely remove directories and files on a Linux File System - Updated</title><content type='html'>&lt;iframe height="2400" src="https://docs.google.com/document/pub?id=1Vpot5IMF6xSUENxEr0xaFoUb7xsiIQZAelPBapiW9uA&amp;amp;embedded=true" width="550"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-4799434436615317904?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/4799434436615317904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2011/04/using-python-and-shred-to-securely.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/4799434436615317904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/4799434436615317904'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2011/04/using-python-and-shred-to-securely.html' title='Using Python and Shred to securely remove directories and files on a Linux File System - Updated'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-5222703475274753059</id><published>2011-02-12T00:53:00.000-08:00</published><updated>2011-02-12T13:25:01.034-08:00</updated><title type='text'>Creating an android app on an Ubuntu Platform with android SDK and Google's Python Android scripting</title><content type='html'>&lt;a href="http://www.socallinuxexpo.org/"&gt;&lt;img src="http://www.socallinuxexpo.org/scale9x/sites/socallinuxexpo.org.scale9x/files/promo-items/9x_125x125_3_0.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe height="2400" src="https://docs.google.com/document/pub?id=1vji4kM_BvP5N14zq69SklDrqmFpgKceFFlj5rsADucU&amp;amp;embedded=true" width="550"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-5222703475274753059?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/5222703475274753059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2011/02/developing-android-app-using-ubuntu-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/5222703475274753059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/5222703475274753059'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2011/02/developing-android-app-using-ubuntu-and.html' title='Creating an android app on an Ubuntu Platform with android SDK and Google&apos;s Python Android scripting'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-8328178147422640383</id><published>2010-07-31T23:47:00.000-07:00</published><updated>2010-08-11T18:38:27.890-07:00</updated><title type='text'>Creating shell code on Ubuntu 10.04 using the chmod system call Part 1</title><content type='html'>I have decided to document some basic introductory information concerning creating NASM and C code on my Ubuntu build.-&lt;br /&gt;&lt;br /&gt;This is just my documentation space on how to create shell code on a linux machine. The syscall that I have chosen for this project is chmod and "testfile" at its target.&lt;br /&gt;&lt;br /&gt;This particular example will change the permission of the "testfile" to 777 in the same directory.&lt;br /&gt;&lt;br /&gt;Part 2 of this exercise will probably change the permission on the shadow file using a vulnerable program. This should not be to difficult since I already have the asm code and just need to specify a file path and choose my vulnerable program.&lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step 1 -&lt;/b&gt;&lt;/span&gt;  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Ensure that you have nasm and g++ on your ubuntu build  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$sudo apt-get install nasm &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step 2&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Create an assembly program call ch_test.asm&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ touch ch_test.asm&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ gedit ch_test.asm&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;;ch_tests.asm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; File name of assembly program&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;[section .text]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;global _start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;_start:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Initiate my global start and jump command&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;jmp short ender &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ; Jump to the ender place holder in code &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;starter:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; return from previous jump this helped store file location&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;xor ecx,ecx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; clear memory (zeroize)&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;xor ebx,ebx &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;xor eax,eax &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;pop ebx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; I popped this to ensure we&amp;nbsp; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;mov al, 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; reduce Null by using &lt;span style="font-family: Courier New;"&gt; 8-bit this is chmod system call&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;mov ecx, 511&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; This is the octal rep for 777 on Linux &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;int 80h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Execute &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;xor ebx, ebx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Clear memory for ebx&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;mov eax, 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Syscall for exit &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;int 80h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Execute&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;ender:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;ender instruction location of my file &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;call starter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;db  'testfile'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;test file name in the same directory&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step 3- test my nasm code.&lt;/b&gt;&lt;/span&gt;  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ nasm -f elf ch_test.asm #This will create an ch_test.o file &lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ ld -o ch_test ch_test.o &lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ strace ./ch_test&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;execve("./ch_test", ["./ch_test"], [/* 37 vars */]) = 0&lt;br /&gt;chmod("testfile", 0777)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0&lt;br /&gt;_exit(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ?&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt; &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ objdump -d ch_test # The following output will be displayed,&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;ch_test:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file format elf32-i386&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Disassembly of section .text:&lt;br /&gt;&lt;br /&gt;08048060 &amp;lt;_start&amp;gt;:&lt;br /&gt;&amp;nbsp;8048060:&amp;nbsp;&amp;nbsp; &amp;nbsp;eb 19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;jmp&amp;nbsp;&amp;nbsp;&amp;nbsp; 804807b &lt;ender&gt;&lt;br /&gt;&lt;br /&gt;08048062 &lt;starter&gt;:&lt;br /&gt;&amp;nbsp;8048062:&amp;nbsp;&amp;nbsp; &amp;nbsp;31 c9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xor&amp;nbsp;&amp;nbsp;&amp;nbsp; %ecx,%ecx&lt;br /&gt;&amp;nbsp;8048064:&amp;nbsp;&amp;nbsp; &amp;nbsp;31 db&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xor&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebx,%ebx&lt;br /&gt;&amp;nbsp;8048066:&amp;nbsp;&amp;nbsp; &amp;nbsp;31 c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xor&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,%eax&lt;br /&gt;&amp;nbsp;8048068:&amp;nbsp;&amp;nbsp; &amp;nbsp;5b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pop&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebx&lt;br /&gt;&amp;nbsp;8048069:&amp;nbsp;&amp;nbsp; &amp;nbsp;b0 0f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mov&amp;nbsp;&amp;nbsp;&amp;nbsp; $0xf,%al&lt;br /&gt;&amp;nbsp;804806b:&amp;nbsp;&amp;nbsp; &amp;nbsp;b9 ff 01 00 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mov&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x1ff,%ecx&lt;br /&gt;&amp;nbsp;8048070:&amp;nbsp;&amp;nbsp; &amp;nbsp;cd 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x80&lt;br /&gt;&amp;nbsp;8048072:&amp;nbsp;&amp;nbsp; &amp;nbsp;31 db&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;xor&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebx,%ebx&lt;br /&gt;&amp;nbsp;8048074:&amp;nbsp;&amp;nbsp; &amp;nbsp;b8 01 00 00 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mov&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x1,%eax&lt;br /&gt;&amp;nbsp;8048079:&amp;nbsp;&amp;nbsp; &amp;nbsp;cd 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x80&lt;br /&gt;&lt;br /&gt;0804807b &lt;ender&gt;:&lt;br /&gt;&amp;nbsp;804807b:&amp;nbsp;&amp;nbsp; &amp;nbsp;e8 e2 ff ff ff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;call&amp;nbsp;&amp;nbsp; 8048062 &lt;starter&gt;&lt;br /&gt;&amp;nbsp;8048080:&amp;nbsp;&amp;nbsp; &amp;nbsp;74 65&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;je&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80480e7 &lt;ender+0x6c&gt;&lt;br /&gt;&amp;nbsp;8048082:&amp;nbsp;&amp;nbsp; &amp;nbsp;73 74&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;jae&amp;nbsp;&amp;nbsp;&amp;nbsp; 80480f8 &lt;ender+0x7d&gt;&lt;br /&gt;&amp;nbsp;8048084:&amp;nbsp;&amp;nbsp; &amp;nbsp;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;data16&lt;br /&gt;&amp;nbsp;8048085:&amp;nbsp;&amp;nbsp; &amp;nbsp;69&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.byte 0x69&lt;br /&gt;&amp;nbsp;8048086:&amp;nbsp;&amp;nbsp; &amp;nbsp;6c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;insb&amp;nbsp;&amp;nbsp; (%dx),%es:(%edi)&lt;br /&gt;&amp;nbsp;8048087:&amp;nbsp;&amp;nbsp; &amp;nbsp;65&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gs&lt;br /&gt;&lt;br /&gt;&lt;/ender+0x7d&gt;&lt;/ender+0x6c&gt;&lt;/starter&gt;&lt;/ender&gt;&lt;/starter&gt;&lt;/ender&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step 4- use the created nasm objdump information.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ touch ch_test.c&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$ gedit ch_test.c&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;# This values are obtained from the objdump form the asm .&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;const char code[]= "\xeb\x19\x31\xc9\x31\xdb\x31\xc0\x5b\xb0\x0f\xb9\xff\x01\x00\x00\xcd\x80\x31\xdb\xb8\x01\x00\x00\x00\xcd\x80\xe8\xe2\xff\xff\xff\x74\x65\x73\x74\x66\x69\x6c\x65"; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;int main(int argc, char **argv) &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;{ &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;int (*func)(); &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;func = (int (*)()) code; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;(int)(*func)(); &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Then you want to compile the c program to make it executable.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;$  g++ -g ch_test.c -o ch_test &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Execute the program&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;$ &lt;b&gt;strace ./ch_test &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Perform some gdb on the binary to see the memory information.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ gdb -q ./ch_test &lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) list &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;1  &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;2 const char code[]= "\xeb\x19\x31\xc9\x31\xdb\x31\xc0\x5b\xb0\x0f\xb9\xff\x01\x00\x00\xcd\x80\x31\xdb\xb8\x01\x00\x00\x00\xcd\x80\xe8\xe2\xff\xff\xff\x74\x65\x73\x74\x66\x69\x6c\x65"; &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;3  &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;4  &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;5 int main(int argc, char **argv) &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;6 { &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;7  int (*func)(); &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;8  func = (int (*)()) code; &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;9  (int)(*func)(); &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;10 }&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) disas main&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;Dump of assembler code for function main: &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x08048494 &amp;lt;+0&amp;gt;: push   %ebp &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x08048495 &amp;lt;+1&amp;gt;: mov    %esp,%ebp &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x08048497 &amp;lt;+3&amp;gt;: and    $0xfffffff0,%esp &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x0804849a &amp;lt;+6&amp;gt;: sub    $0x10,%esp &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x0804849d &amp;lt;+9&amp;gt;: movl   $0x80485a0,0xc(%esp) &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x080484a5 &amp;lt;+17&amp;gt;: mov    0xc(%esp),%eax &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x080484a9 &amp;lt;+21&amp;gt;: call   *%eax &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x080484ab &amp;lt;+23&amp;gt;: mov    $0x0,%eax &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x080484b0 &amp;lt;+28&amp;gt;: leave   &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;0x080484b1 &amp;lt;+29&amp;gt;: ret     &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;End of assembler dump. &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) break main&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Breakpoint 1 at 0x804849d: file ch_test.c, line 8.. &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) run&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Starting program: /home/t/coding/t_coding/ch_test  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Breakpoint 1, main (argc=1, argv=0xbffff4f4) at ch_test.c:8 &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;8  func = (int (*)()) code; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) info registers &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;eax         (Accumulator)      0xbffff4f4 -1073744652 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;ecx          (Counter)   0x758d8dac 1972211116 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;edx        (Data)         0x1 1 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;ebx         (Base Register)      0x283ff4 2637812 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;esp           (Stack Pointer)       0xbffff430 0xbffff430 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;ebp          (Base Pointer)    0xbffff448 0xbffff448 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;esi           (Source Index)    0x0 0 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;edi           (Destination Index)   0x0 0 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;eip           (Current Instruction) 0x80483bd 0x80483bd &lt;main+9&gt; &lt;/main+9&gt;&lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;eflags         0x286 [ PF SF IF ] &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;cs             0x73 115 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;ss             0x7b 123 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;ds             0x7b 123 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;es             0x7b 123 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;fs             0x0 0 &lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;gs             0x33 51 &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) info registers eip  or below&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; font-weight: normal; margin-bottom: 0in;"&gt;eip            0x804849d 0x804849d &lt;main+9&gt; &lt;/main+9&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;(gdb) i r eip&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;eip            0x804849d 0x804849d &lt;main+9&gt; &lt;/main+9&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) x/o $eip   # show in octal&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;0x80483bd &lt;main+9&gt;: 01411042307 &lt;/main+9&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;(gdb) x/x  # show in hexadecimal&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;0x80483c1 &lt;main+13&gt;: 0x08048490 &lt;/main+13&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;(gdb) x/8xb # show the memory in 8 hexadecimal bytes &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;0x80483c5 &lt;main+17&gt;: 0x8b 0x44 0x24 0x0c 0xff 0xd0 0xc9 0xc38  &lt;/main+17&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;(gdb) x/8xh # half word 2bytes or x/8xw #word  4bytes or x/8xg 8bytes &lt;/b&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;0x80483cd: 0x9090 0x5590 0xe589 0xc35d 0x748d 0x0026 0xbc8d 0x0027&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Notes about – dump and gdb  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;The first three lines have to do with stack preperation -  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;The lines that need to be analyzed are movl   and mov  -  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;info registers – displays the contents of integer registers - &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;Help info will give you some additional commands in gdb &lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; margin-bottom: 0in;"&gt;&lt;span style="font-family: Courier New;"&gt;EAX, EBX, ECX, and EDX 32 Bit&lt;/span&gt;&lt;/div&gt;&lt;div style="font-weight: normal; margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;AH, BH, CH and DH 16 Bit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;AL, BL, CL, and DL 8 Bit&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-weight: normal; margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-8328178147422640383?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/8328178147422640383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/creating-shell-code-on-ubuntu-1004.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/8328178147422640383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/8328178147422640383'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/creating-shell-code-on-ubuntu-1004.html' title='Creating shell code on Ubuntu 10.04 using the chmod system call Part 1'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-909666638428628660</id><published>2010-07-17T14:18:00.000-07:00</published><updated>2010-07-17T14:32:19.513-07:00</updated><title type='text'>VMware or VirtualBox on Ubuntu 10.04 - installation and conversion</title><content type='html'>It seems like whenever I perform an upgrade as an example from 9.10 to 10.04, the VMware build seems to lose it functionality. This has caused me to utilize VirtualBox some months ago and the first key item that I noticed was the ease of installation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;span style="font-size: large;"&gt;INSTALLING VirtualBox on Ubuntu&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So simple,&lt;br /&gt;&lt;br /&gt;They fully support debian and more particularity Ubuntu 10.04 ("Lucid Lynx") with a *.deb download -&lt;br /&gt;&lt;br /&gt;http://www.virtualbox.org/wiki/Linux_Downloads&lt;br /&gt;&lt;br /&gt;So you basically just click on the link and use the package manger to run the GDebi package installer -&lt;br /&gt;&lt;br /&gt;I did not take any notes when I installed the app but remember it was very simple and I did not have to load any additional libraries - but since I did not take notes you might have to load some dependencies -&amp;nbsp; sorry I just don't remember.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;INSTALLING VMware on Ubuntu&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This section is a pain - As far as I know and based on some searching there is not a supported versions specifically built for ubuntu 10.04 so you have to download the VMware-Player*.bundle file manually to install the application. &lt;br /&gt;&lt;br /&gt;These day - were Time is so so premium and if it takes more time that it should to perform a function or use a specific environment, then I turn to other tested solutions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This was my quick experience trying to install VMware on Ubuntu -&lt;br /&gt;&lt;br /&gt;I found some documentation were you download the VMware-Player*.bundle from the website after you register.&lt;br /&gt;&lt;br /&gt;Then you change the permission's to +x&amp;nbsp; and try and run the bundle.&lt;br /&gt;$ chmod +x VMware-Player*.bundle chmod +x VMware-Player*.bundle&lt;br /&gt;$ gksudo bash ./VMware-Player*.bundle&lt;br /&gt;&lt;br /&gt;This resulted in a whole bunch of errors and yes I have g++ installed&amp;nbsp; -&lt;br /&gt;&lt;br /&gt;so I tried&lt;br /&gt;&lt;br /&gt;$ sudo ./VMware-Player-3.0.0-203739.i386.bundle&amp;nbsp; --ignore-errors&lt;br /&gt;&lt;br /&gt;Then I received this message - &lt;br /&gt;&lt;br /&gt;./VMware-Player-3.0.0-203739.i386.bundle: 110: Syntax error: newline unexpected&lt;br /&gt;&lt;br /&gt;As stated before I am at a turning point in my life were I used to spend the hours trying to troubleshoot this error message. So if I am aware of a comparable product that can produce the same results that has me up and running in minutes compared to an hour of trouble shooting then I am sold.&lt;br /&gt;&lt;br /&gt;So I gave up on VMware on the Ubuntu platform and I have been currently using VirtualBox and will continue to do so,&lt;br /&gt;&lt;br /&gt;I can say in VMware defense that at my current workplace were I am forced to use Windows in some areas, the VMWare Workstation and Server products are great.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is my way of letting of some steam and as a quick reference for a later date so I can remind myself why I am using VirtualBox -&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-909666638428628660?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/909666638428628660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/vmware-or-virtualbox-on-ubuntu-1004.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/909666638428628660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/909666638428628660'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/vmware-or-virtualbox-on-ubuntu-1004.html' title='VMware or VirtualBox on Ubuntu 10.04 - installation and conversion'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-4368965271551707525</id><published>2010-07-10T15:22:00.000-07:00</published><updated>2010-07-11T13:27:13.984-07:00</updated><title type='text'>Installation of Metasploit Framework on Ubuntu Linux</title><content type='html'>&lt;div style="margin-bottom: 0in;"&gt;I have a new ubuntu build (10.04), and I am installing all of my usual software and of course I have to re-install metasploit for my internal security lab testing purposes.&lt;br /&gt;&lt;br /&gt;I am referencing the below link for the installation and this blog as my personal documentation space so I do not have to re-invent the wheel on all future installations.&lt;br /&gt;&lt;br /&gt;So far the documentation has been sound with no hiccups - I am currently installing the tarball and will perform some testing.&lt;br /&gt;&lt;br /&gt;I also plan on writing some ruby code and document the process.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Basic Metasploit Setup on UBUNTU - &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.metasploit.com/redmine/projects/framework/wiki/Install_Ubuntu"&gt;http://www.metasploit.com/redmine/projects/framework/wiki/Install_Ubuntu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The database that I have selected in this installation is - &lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;$ sudo apt-get install rubygems libmysqlclient-dev&lt;br /&gt;$ sudo gem install mysql&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I have some experience with MySQL and I image that I will utilize the db in future programming projects on this server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Also ensure that you have mysql-server installed&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ apt-get install mysql-server&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;--------------------------- MySQL user setup -------------------------&lt;/b&gt;&lt;br /&gt;Since this was a new ubuntu build - I did have to install MySQL and created a user for metasploit -&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;mysql&amp;gt;create user 'useraname'@'localhost' identified by 'password';&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;mysql&amp;gt;GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'userame'@'localhost';&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;&lt;b&gt;mysql&amp;gt;GRANT ALL ON *.* TO 'username'@'localhost';&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;-----------------------------------------------------------------------------&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All sections of the installation have been completed except the "To enable WiFi modules:"&lt;br /&gt;&lt;br /&gt;Now the fun begins starting Metasploit and testing the functionality.&lt;br /&gt;&lt;br /&gt;In this install the correct full path to start is -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;i&gt;&lt;b&gt;Start Metasploit&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ /opt/metasploit3/msf3/msfconsole &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Basic Metasploit commands to get started &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;1.Ensure that you can connect to your preferred database which in my case is MySQL -&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;msf &amp;gt; db_connect username:password@locahost/metasploit3&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Note this will create a metasploit db in your mysql-server on localhost -&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2. Metasploit does have a ? help command and will allow you to choose from the&amp;nbsp; core commands and Database Backend Command -&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Core Commands&lt;br /&gt;=============&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Help menu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; back&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Move back from the current context&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; banner&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display an awesome metasploit banner&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Change the current working directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; color&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Toggle color&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Communicate with a host&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit the console&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; help&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Help menu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Displays information about one or more module&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; irb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drop into irb scripting mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jobs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Displays and manages jobs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; kill&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kill a job&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; load&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Load a framework plugin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; loadpath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Searches for and loads modules from a path&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit the console&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resource&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Run the commands stored in a file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; route&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Route traffic through a session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; save&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Saves the active datastores&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; search&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Searches module names and descriptions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sessions&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dump session listings and display information about sessions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sets a variable to a value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sets a global variable to a value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Displays modules of a given type, or all modules&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do nothing for the specified number of seconds&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unload&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unload a framework plugin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unset&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unsets one or more variables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsetg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unsets one or more global variables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Selects a module by name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Show the framework and console library version numbers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Database Backend Commands&lt;br /&gt;=========================&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Command&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_add_host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add one or more hosts to the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_add_note&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add a note to host&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_add_port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add a port to host&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_autopwn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Automatically exploit everything&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_connect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Connect to an existing database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_create&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a brand new database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_del_host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Delete one or more hosts from the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_del_port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Delete one port from the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_destroy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drop an existing database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_disconnect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disconnect from the current database instance&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_driver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify a database driver&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_hosts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List all hosts in the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Import a scan result file (filetype will be auto-detected)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_amap_log&amp;nbsp;&amp;nbsp;&amp;nbsp; Import a THC-Amap scan results file (-o )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_amap_mlog&amp;nbsp;&amp;nbsp; Import a THC-Amap scan results file (-o -m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_ip_list&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Import a list of line seperated IPs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_msfe_xml&amp;nbsp;&amp;nbsp;&amp;nbsp; Import a Metasploit Express report (XML)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_nessus_nbe&amp;nbsp; Import a Nessus scan result file (NBE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_nessus_xml&amp;nbsp; Import a Nessus scan result file (NESSUS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_nmap_xml&amp;nbsp;&amp;nbsp;&amp;nbsp; Import a Nmap scan results file (-oX)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_import_qualys_xml&amp;nbsp; Import a Qualys scan results file (XML)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_nmap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Executes nmap and records the output automatically&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_notes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List all notes in the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_services&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List all services in the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Show the current database status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_sync&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Synchronize the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_vulns&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List all vulnerabilities in the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_workspace&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Switch between database workspaces&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;3. The db_autopwn is the easiest to use and will show you the options that are associated with this command at the command prompt -&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usage: db_autopwn [options]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display this help text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Show all matching exploit modules&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select modules based on vulnerability references&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -p&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select modules based on open ports&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Launch exploits against all matched targets&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -r&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use a reverse conndbect shell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use a bind shell on a random port (default)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -q&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disable exploit module output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -R&amp;nbsp; [rank]&amp;nbsp; Only run modules with a minimal rank&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -I&amp;nbsp; [range] Only exploit hosts inside this range&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -X&amp;nbsp; [range] Always exclude hosts inside this range&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -PI [range] Only exploit hosts with these ports open&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -PX [range] Always exclude hosts with these ports open&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -m&amp;nbsp; [regex] Only run modules whose name matches the regex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -T&amp;nbsp; [secs]&amp;nbsp; Maximum runtime for any exploit in seconds&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4. I added a single host to test the functionality of this build -&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;msf &amp;gt; db_add_host xxx.xxx.xxx.xxx&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;msf &amp;gt; db_hosts&lt;/b&gt;&lt;/i&gt; # This will ensure you are using the correct hosts in the databases.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;5. You can also use nmap to search out hosts and port - # on this build I had to install nmap&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;------------------------- Install Nmap on Ubuntu------------------------------&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ sudo apt-get install nmap&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;-------------------------- Install Nmap on Ubuntu------------------------------&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;msf &amp;gt; db_nmap -sS -T4 -O x.x.x.0/24&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;or db_nmap -sS -T4 -O X.X.X.X&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;NMAP switches - &lt;br /&gt;-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans&lt;br /&gt;-T&amp;lt;0-5&amp;gt;: Set timing template (higher is faster)&lt;br /&gt;OS DETECTION:&lt;br /&gt;&amp;nbsp; -O: Enable OS detection&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;6. Once you build your database of known hosts and ports you can then choose the lazy way&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;msf &amp;gt; db_autopwn -t -p -e -s -b&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/i&gt;# See step three for switch defs.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-4368965271551707525?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/4368965271551707525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/installation-on-ubuntu-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/4368965271551707525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/4368965271551707525'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/installation-on-ubuntu-linux.html' title='Installation of Metasploit Framework on Ubuntu Linux'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-1891289248237907105</id><published>2010-07-05T20:54:00.000-07:00</published><updated>2010-07-05T20:54:23.963-07:00</updated><title type='text'>Dirk Loss: Python tools for penetration testers</title><content type='html'>&lt;a href="http://dirk-loss.de/python-tools.htm"&gt;Dirk Loss: Python tools for penetration testers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-1891289248237907105?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dirk-loss.de/python-tools.htm' title='Dirk Loss: Python tools for penetration testers'/><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/1891289248237907105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/dirk-loss-python-tools-for-penetration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1891289248237907105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1891289248237907105'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/07/dirk-loss-python-tools-for-penetration.html' title='Dirk Loss: Python tools for penetration testers'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-1677715371571774848</id><published>2010-06-13T19:39:00.000-07:00</published><updated>2011-02-12T01:43:08.852-08:00</updated><title type='text'>CISSP Nationwide Average Salary &amp; PayScale</title><content type='html'>&lt;!-- BEGIN INDEED SALARY GRAPH --&gt;&lt;br /&gt; &lt;div style="width:196px;"&gt; &lt;div style="border:1px solid #ccc;padding: 1px; margin: 0 0 3px 0"&gt; &lt;table cellpadding="0" cellspacing="0" style="border:0;padding:0;margin:0;width:100%;"&gt; &lt;tr&gt; &lt;td style="background-color: #eee; padding: 4px 6px; border: 0;border-right:1px solid #fff; width: 50%; text-align: right;"&gt;&lt;p style="color: #000; font: bold 10px/1.2 Arial, Helvetica, sans-serif;margin: 0; padding: 0; border: 0;"&gt;&lt;a href="http://www.indeed.com/jobs?sid=salary&amp;q=CISSP" style="text-decoration:underline; color:#00c; background-color: transparent;"&gt;CISSP&lt;/a&gt; &lt;span style="display:block;"&gt;$96,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="width: 50%;background-color:#f8f8f8;"&gt;&lt;div style="height: 20px; margin: 0; margin-top: 2px; width: 64%; background-color: #ff6600;"&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;p style="font: normal 10px/1.2 Arial, Helvetica, sans-serif; color: #000; margin: 0; padding: 0; border: 0; text-align: center;"&gt;&lt;a style="text-decoration:underline; color:#00c; background-color: transparent;" href="http://www.indeed.com/salary?q1=CISSP&amp;l1="&gt;View Larger Salary Graph&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;!-- END INDEED SALARY GRAPH --&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.payscale.com/research/US/Certification=Certified_Information_Systems_Security_Professional_%28CISSP%29/Salary"&gt;PayScale&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 540px;"&gt;&lt;a href="http://www.indeed.com/jobtrends?q=cissp" title="cissp Job Trends"&gt;&lt;br /&gt;&lt;img alt="cissp Job Trends graph" border="0" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=cissp" width="540" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table border="0" cellpadding="6" cellspacing="0" style="font-size: 80%;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.indeed.com/jobtrends?q=cissp"&gt;cissp Job Trends&lt;/a&gt;&lt;/td&gt; &lt;td align="right"&gt;&lt;a href="http://www.indeed.com/q-Cissp-jobs.html"&gt;Cissp jobs&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-1677715371571774848?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/1677715371571774848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/cissp-nationwide-average-salary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1677715371571774848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1677715371571774848'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/cissp-nationwide-average-salary.html' title='CISSP Nationwide Average Salary &amp; PayScale'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-8666790241766937855</id><published>2010-06-13T11:09:00.000-07:00</published><updated>2010-06-13T11:15:52.169-07:00</updated><title type='text'>Converts video files to mp4</title><content type='html'>Here is a quick and dirty post on converting video files to mp4 using a perl script that I wrote and the mp4size ruby script written by Thomer M. Gil&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#! /usr/bin/perl -wl&lt;br /&gt;# This script will take multiple files in a directory and automatically convert to #.mp4 using .mp4size script - &lt;br /&gt;# Ensure that this ruby and perl script is in the same directory were the files #need to reside&lt;br /&gt;# Written by Tim E&lt;br /&gt;# twitter @ubuntumongol&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;&lt;br /&gt;my$file;&lt;br /&gt;my $dir = "/PathtoFiles/";&lt;br /&gt;my $newdir ;&lt;br /&gt;opendir(BIN, $dir) or die "Can't open $dir: $!";&lt;br /&gt;my $newfile;&lt;br /&gt;my $origfile;&lt;br /&gt;&lt;br /&gt;while( defined ($file = readdir BIN) ) {&lt;br /&gt;chomp ($file);&lt;br /&gt;&amp;nbsp;my $filex;&lt;br /&gt;&amp;nbsp;my @parts = split (/\./,$file);&lt;br /&gt;&amp;nbsp;$filex = $parts[1];&lt;br /&gt;&amp;nbsp;pop @parts;&lt;br /&gt;&amp;nbsp;my $file_no_ext = join '.', @parts;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;$newfile = "\"".$dir.$file_no_ext . ".mp4"."\"";&lt;br /&gt;&amp;nbsp;$origfile = "\"".$dir.$file."\"";&lt;br /&gt;&amp;nbsp;$newdir = "\"".$dir."mp4ize"."\"";&lt;br /&gt;#my $runcommand = "ffmpeg -i $origfile -target ntsc-vcd $newfile";&lt;br /&gt;&lt;br /&gt;my $runcommand = "$newdir $origfile";&lt;br /&gt;print "$runcommand\n";&lt;br /&gt;&lt;br /&gt;if ($filex eq "mpg")&amp;nbsp; &lt;br /&gt;{&lt;br /&gt;system($runcommand);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;closedir(BIN);&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------mp4ize-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#!/usr/bin/ruby -w&lt;br /&gt;#&lt;br /&gt;# Copyright (C) 2007-2009 Thomer M. Gil [http://thomer.com/]&lt;br /&gt;#&lt;br /&gt;# Thanks to Brian Moore, Justin Payne, Matt Spitz, Martyn Parker,&lt;br /&gt;# Jean-Francois Macaud, Thomas Hannigan, Anisse Astier, Juanma Hernández,&lt;br /&gt;# Trung Huynh, and Mark Ryan for bugfixes and suggestions.&lt;br /&gt;#&lt;br /&gt;# Oct. 14, 2008: show percentage progress. add -t and -w flags.&lt;br /&gt;# Jan. 11, 2009: switch to bit/s bitrates for newer ffmpeg versions.&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add --iphone option.&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add -y option to ffmpeg (overwrite).&lt;br /&gt;# Jan. 20, 2009: don't exit early when processing multiple files.&lt;br /&gt;# Feb. 17, 2009: deal with "Invalid pixel aspect ratio" error.&lt;br /&gt;# Apr.&amp;nbsp; 1, 2009: new --outdir parameter.&lt;br /&gt;# May&amp;nbsp; 22, 2009: handle filenames with quotes and whitespace.&lt;br /&gt;# Oct&amp;nbsp;&amp;nbsp; 6, 2009: fix bug where we forget to read stderr&lt;br /&gt;# Nov.&amp;nbsp; 5, 2009: fix -v, -t, and -w command line options&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; removed bogus 'here' debug statement&lt;br /&gt;#&lt;br /&gt;# This program is free software. You may distribute it under the terms of&lt;br /&gt;# the GNU General Public License as published by the Free Software&lt;br /&gt;# Foundation, version 2.&lt;br /&gt;#&lt;br /&gt;# This program is distributed in the hope that it will be useful, but&lt;br /&gt;# WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General&lt;br /&gt;# Public License for more details.&lt;br /&gt;#&lt;br /&gt;# This program converts video files to mp4, suitable to be played on an iPod&lt;br /&gt;# or an iPhone. It is careful about maintaining the proper aspect ratio.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;require 'getoptlong'&lt;br /&gt;require 'open3'&lt;br /&gt;&lt;br /&gt;# will automatically try with -vcoded libxvid, also.&lt;br /&gt;# will automatically try with -acodec libfaac, also.&lt;br /&gt;DEFAULT_ARGS = "-f mp4 -y -vcodec xvid -maxrate 1000 -qmin 3 -qmax 5 -g 300 -acodec aac"&lt;br /&gt;DEFAULT_BUFSIZE = 4096&lt;br /&gt;DEFAULT_AUDIO_BITRATE = 128 # will be automatically multiplied with 1024 for newer ffmpeg versions&lt;br /&gt;DEFAULT_VIDEO_BITRATE = 400 # will be automatically multiplied with 1024 for newer ffmpeg versions&lt;br /&gt;IPOD_WIDTH = 320.0&lt;br /&gt;IPOD_HEIGHT = 240.0&lt;br /&gt;IPHONE_WIDTH = 480.0&lt;br /&gt;IPHONE_HEIGHT = 320.0&lt;br /&gt;&lt;br /&gt;$options = {}&lt;br /&gt;opts = GetoptLong.new(*[&lt;br /&gt;&amp;nbsp; [ "--audio", "-a", GetoptLong::REQUIRED_ARGUMENT ],&amp;nbsp; # audio bitrate&lt;br /&gt;&amp;nbsp; [ "--help", "-h", GetoptLong::NO_ARGUMENT ],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # help&lt;br /&gt;&amp;nbsp; [ "--video", "-b", GetoptLong::REQUIRED_ARGUMENT ],&amp;nbsp; # video bitrate&lt;br /&gt;&amp;nbsp; [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # verbose&lt;br /&gt;&amp;nbsp; [ "--width", "-w", GetoptLong::REQUIRED_ARGUMENT ],&amp;nbsp; # override width&lt;br /&gt;&amp;nbsp; [ "--height", "-t", GetoptLong::REQUIRED_ARGUMENT ], # override height&lt;br /&gt;&amp;nbsp; [ "--iphone", "-i", GetoptLong::NO_ARGUMENT ],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # set width/height&lt;br /&gt;&amp;nbsp; [ "--outdir", "-o", GetoptLong::REQUIRED_ARGUMENT ], # dir where to write files&lt;br /&gt;])&lt;br /&gt;opts.each { |opt, arg| $options[opt] = arg }&lt;br /&gt;&lt;br /&gt;if $options['--help']&lt;br /&gt;&amp;nbsp; puts &amp;lt;&lt;eof&gt;&lt;br /&gt;mp4ize - encode videos to mp4 for an iPod or an iPhone&lt;br /&gt;&lt;br /&gt;Usage: mp4ize file1.avi [file2.mpg [file3.asf [...]]]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; -h/--help&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : this help&lt;br /&gt;&amp;nbsp; -v/--verbose&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : verbose&lt;br /&gt;&lt;br /&gt;&amp;nbsp; -a/--audio RATE&amp;nbsp;&amp;nbsp;&amp;nbsp; : override default audio bitrate (#{DEFAULT_AUDIO_BITRATE})&lt;br /&gt;&amp;nbsp; -b/--video RATE&amp;nbsp;&amp;nbsp;&amp;nbsp; : override default video bitrate (#{DEFAULT_VIDEO_BITRATE})&lt;br /&gt;&lt;br /&gt;&amp;nbsp; -w/--width WIDTH&amp;nbsp;&amp;nbsp; : over default width (#{IPOD_WIDTH.to_i})&lt;br /&gt;&amp;nbsp; -t/--height HEIGHT : over default height (#{IPOD_HEIGHT.to_i})&lt;br /&gt;&amp;nbsp; -i/--iphone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : same as --width #{IPHONE_WIDTH.to_i} --height #{IPHONE_HEIGHT.to_i}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; -o/--outdir O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : write files to given directory&lt;br /&gt;EOF&lt;br /&gt;&amp;nbsp; exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# --iphone sets --width and --height&lt;br /&gt;if $options['--iphone']&lt;br /&gt;&amp;nbsp; if $options['--width'] || $options['--height']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn "You can't use --iphone with --width or --height."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $options['--width'] = $options['-w'] = IPHONE_WIDTH&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $options['--height'] = $options['-t'] = IPHONE_HEIGHT&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;audio_bitrate = $options['--audio'] || DEFAULT_AUDIO_BITRATE&lt;br /&gt;video_bitrate = $options['--video'] || DEFAULT_VIDEO_BITRATE&lt;br /&gt;&lt;br /&gt;ARGV.each do |infile|&lt;br /&gt;&amp;nbsp; outfile = infile.dup&lt;br /&gt;&amp;nbsp; ext = File.extname(outfile)&lt;br /&gt;&amp;nbsp; outfile.sub!(/#{ext}$/, '.mp4')&lt;br /&gt;&amp;nbsp; if $options['--outdir']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if !File.directory?($options['--outdir'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; warn "#{$options['--outdir']} does not exist or is not a directory. exiting."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outfile = File.join($options['--outdir'], File.basename(outfile))&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # open the file to figure out the aspect ratio&lt;br /&gt;&amp;nbsp; duration, w, h = 0.0, nil, nil&lt;br /&gt;&amp;nbsp; Open3.popen3("/usr/bin/ffmpeg", "-i", infile) do |stdin, stdout, stderr|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [stdout, stderr].each do |io|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; io.each_line do |line|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if line.match(/Video:.+ (\d+)x(\d+)/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w, h = $1.to_f, $2.to_f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif line.match(/Duration:\s+(\d+):(\d+):(\d+)\.(\d+)/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration += $1.to_f * 3600&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration += $2.to_f * 60&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration += $3.to_f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duration += $4.to_f / 10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aspect = w/h&lt;br /&gt;&amp;nbsp; rescue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; puts "Couldn't figure out aspect ratio."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; user_width = $options['--width'] ? $options['--width'].to_i : IPOD_WIDTH&lt;br /&gt;&amp;nbsp; user_height = $options['--height'] ? $options['--height'].to_i : IPOD_HEIGHT&lt;br /&gt;&lt;br /&gt;&amp;nbsp; width = user_width.to_i&lt;br /&gt;&amp;nbsp; height = (width / aspect.to_f).to_i&lt;br /&gt;&amp;nbsp; height -= (height % 2)&lt;br /&gt;&amp;nbsp; pad = ((user_height - height.to_f) / 2.0).to_i&lt;br /&gt;&amp;nbsp; pad -= (pad % 2)&lt;br /&gt;&amp;nbsp; padarg1, padarg2 = "padtop", "padbottom"&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # recalculate using the height as the baseline rather than the width&lt;br /&gt;&amp;nbsp; if pad &amp;lt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height = user_height.to_i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width = (height * aspect.to_f).to_i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width -= (width % 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pad = ((user_width - width.to_f)/2.0).to_i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pad -= (pad % 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; padarg1, padarg2 = "padleft", "padright"&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; File.unlink(outfile) if File.exists?(outfile)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # use %infile% and %outfile% and replace those after the split() so that we&lt;br /&gt;&amp;nbsp; # don't split() a filename that has spaces in it.&lt;br /&gt;&amp;nbsp; cmd = "/usr/bin/ffmpeg -i %infile% #{DEFAULT_ARGS} -bufsize #{DEFAULT_BUFSIZE} -s #{width}x#{height} -#{padarg1} #{pad} -#{padarg2} #{pad} -ab #{audio_bitrate} -b #{video_bitrate} %outfile%"&lt;br /&gt;&amp;nbsp; puts cmd if $options['--verbose']&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # We could just call "system cmd" here, but we want the exit code of mp4ize&lt;br /&gt;&amp;nbsp; # to tell us whether the duration of the generated mp4 equals the duration&lt;br /&gt;&amp;nbsp; # of the original movie.&amp;nbsp; Exits with a non-zero code if the two are not&lt;br /&gt;&amp;nbsp; # within 1% of each other.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; time = 0&lt;br /&gt;&amp;nbsp; STDOUT.sync = true&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # try with -vcodec libxvid and -vcodec xvid&lt;br /&gt;&amp;nbsp; # try with -acodec libfaac and -acodec aac&lt;br /&gt;&amp;nbsp; catch(:done) do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.times do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(:retry) do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; puts "cmdline: #{cmd}" if $options['--verbose']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd_array = cmd.split(/\s+/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd_array.collect! {|s| s.sub(/^%infile%$/, infile)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd_array.collect! {|s| s.sub(/^%outfile%$/, outfile)}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open3.popen3(*cmd_array) do |stdin, stdout, stderr|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; io = select([stdout, stderr], nil, nil, 10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.times do |std| # both stdout and stderr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next if io[0][std].nil?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; io[0][std].each_line("\r") do |line|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; puts "the line is #{line}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r%.2f%% | ", time / duration * 100.0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print line&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if line.match(/Invalid pixel aspect ratio/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!("-s #{width}x#{height}", "-s #{width}x#{height} -aspect #{aspect}")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw :retry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif line.match(/Unknown.*code.*xvid/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!('-vcodec xvid', '-vcodec libxvid')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw :retry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif line.match(/Unknown.*code.*aac/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!('-acodec aac', '-acodec libfaac')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw :retry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # newer ffmpeg versions want bit/s, not kbit/s.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif line.match(/The bitrate parameter is set too low/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!(/-ab \d+/, "-ab #{audio_bitrate}k")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!(/-b \d+/, "-b #{video_bitrate}k")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.sub!(/-bufsize \d+/, "-bufsize #{DEFAULT_BUFSIZE}k")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw :retry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif line.match(/time=([^\s]+)/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time = $1.to_f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw :done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # return completeness of mp4 file&lt;br /&gt;&amp;nbsp; puts "expected duration: #{duration}" if $options['--verbose']&lt;br /&gt;&amp;nbsp; puts "encoded duration: #{time}" if $options['--verbose']&lt;br /&gt;&amp;nbsp; if ARGV.size == 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit((time &amp;lt;= duration * 1.01) &amp;amp;&amp;amp; (time &amp;gt;= duration * 0.99))&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;/eof&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-8666790241766937855?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/8666790241766937855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/converts-video-files-to-mp4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/8666790241766937855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/8666790241766937855'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/converts-video-files-to-mp4.html' title='Converts video files to mp4'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-1016626922441566245</id><published>2010-06-12T15:28:00.000-07:00</published><updated>2010-08-13T21:07:08.942-07:00</updated><title type='text'>Installing MongoDb and Python with eclipse on Ubuntu 9.10</title><content type='html'>Installing MongoDb and Python with eclipse on Ubuntu 9.10&lt;br /&gt;&lt;br /&gt;System = Ubuntu 9.10&lt;br /&gt;&lt;br /&gt;Starting Reference = http://giantflyingsaucer.com/blog/?p=839&lt;br /&gt;&lt;br /&gt;I just wanted to document a informative and procedural process in setting up python and mongodb and using the eclipse programming environment, it will also be used to reference the python programming project to organize my ebooks and documentation.&lt;br /&gt;&lt;br /&gt;I normally will use MySQL for any projects that require a database and have been using MySQL along with the other commercial databases for some years now. But after reading the Linux Journal and learning that MongoDB is a NoSQL database, this has intrigued my interest and since normal databases are not particularly in my opinion suited to store documents – this has led me to start this personal project.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;MongoDB Setup Steps&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. Install the curl application to pull the latest db version from the website.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ apt-get install curl&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;2. Once curl is installed on the system – create a folder on your local system to serve and the database repository.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ mkdir /home/t/data/db&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;3. Once the directory and created then download the latest build from mongodb&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ curl -O http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4. Then untar the download from the website&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ tar xzf mongodb-linux-i386-latest.tgz&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;5. The files will now reside in the /data/db path to start using mongo db simply start the data bast engine by  &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ /data/db/mongodb-linux-i686-2010-05-10/bin/mongod &amp;amp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;6. Open another command terminal and execute the following command to get the mongo db interface&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;$ /data/db/mongodb-linux-i686-2010-05-01/bin/mongo&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will then get an interesting display of text using this version of mongo – so I guess this is the wrong db but the size it good for now&lt;br /&gt;Sat May 1 13:02:23 Mongo DB : starting : pid = 2597 port = 27017 dbpath = /data/db/ master = 0 slave = 0 32-bit  &lt;br /&gt;****&lt;br /&gt;WARNING: This is development version of MongoDB. Not recommended for production.&lt;br /&gt;****&lt;br /&gt;** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data&lt;br /&gt;** see http://blog.mongodb.org/post/137788967/32-bit-limitations for more&lt;br /&gt;At the command prompt of &amp;gt; will be given and from a security perspective unlike MySQL no password is required and I am unsure of the permission the default user is authorized. I will investigate this further after I get through the initial process&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The help feature is a strong point for the mongodb – its great to get commands from the system without having to look them up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;7.&amp;gt;help&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The help command returned the following results  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;show dbs&lt;/b&gt;&lt;/i&gt; show database names&lt;br /&gt;&lt;i&gt;&lt;b&gt;show collections&lt;/b&gt;&lt;/i&gt; show collections in current database&lt;br /&gt;&lt;i&gt;&lt;b&gt;show users&lt;/b&gt;&lt;/i&gt; show users in current database&lt;br /&gt;&lt;i&gt;&lt;b&gt;show profile &lt;/b&gt;&lt;/i&gt;show most recent system.profile entries with time &amp;gt;= 1ms&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.help()&lt;/b&gt;&lt;/i&gt; help on DB methods&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.foo.help() &lt;/b&gt;&lt;/i&gt;help on collection methods&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.foo.find() &lt;/b&gt;&lt;/i&gt;list objects in collection foo&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.foo.find( { a : 1 } )&lt;/b&gt;&lt;/i&gt; list objects in foo where a == 1  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;I used the web reference example about to create a test db entry and return the results  &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;db.mystorage.save( { "message":"Hello World"} )&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;db.mystorage.findOne()&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;{ "_id" : ObjectId("4bdc88f8739846d101246a42"), "message" : "Hello World" }&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;I also added a little more testing and entered two more entries to mystorage database –&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.mystorage.save( { "message1":"Hello World"} )&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.mystorage.save( { "message2":"Hello World"} )&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point I used the previously mentioned help function and entered the following command to see my entries within the mystorage db that is apparently created by default,&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;db.mystorage.find() &lt;/b&gt;&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;{ "_id" : ObjectId("4bdc88f8739846d101246a42"), "message" : "Hello World" }&lt;/b&gt;&lt;br /&gt;&lt;b&gt;{ "_id" : ObjectId("4bdc8a1c739846d101246a43"), "message1" : "Hello World" }&lt;/b&gt;&lt;br /&gt;&lt;b&gt;{ "_id" : ObjectId("4bdc8a21739846d101246a44"), "message2" : "Hello World" }&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&amp;nbsp; This was part one of my process and now that I know the db portion is working on home development system it is now time to install python and start the programming process of accessing this database and writing an interface for storing and retrieving documents.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have utilized C, C++, PHP, and Perl as my primary languages of choice and I am most recently refreshed with Perl, but after some reading on the Internet and some language comparison. I decided to give Python a chance for a couple of reasons.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Easier to read by a human compared to the cryptic nature of Perl.&lt;br /&gt;&lt;br /&gt;2. I am not really creating a web programming structure so PHP is out the question.&lt;br /&gt;3. I am not concerned with speed for this project and even though C++ is probably my favorite language it would be an overkill for this simple adventure.&lt;br /&gt;&lt;br /&gt;So I have a new language to learn that has been mentioned to be more secure and easy for someone with Perl and C++ programming experience.&lt;br /&gt;&lt;br /&gt;I will try and define some differences and provide an overall transition assessment of using a language that I have never used before in my previous experiences.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Installing Python on my Ubuntu system.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The will start by installing the python-setuptools using the following commands&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;sudo apt-get install python-setuptools&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This will give the necessary to install the pymongo code to support the connection to the database with the python programming language.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;sudo easy_install pymongo&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did receive some error message when executing this command and will continue on the programming example from the above referenced website and hopefully will resolve the error, but based on my time constraint – I am pushing on.&lt;br /&gt;.*************************************************************&lt;br /&gt;WARNING: The pymongo._cbson extension module could not&lt;br /&gt;be compiled. No C extensions are essential for PyMongo to run,&lt;br /&gt;although they do result in significant speed improvements.&lt;br /&gt;Above is the ouput showing how the compilation failed.&lt;br /&gt;**************************************************************&lt;br /&gt;At this point of time – I decided to conduct a google search to find the best text environment for the python language or one that will highlight the Python syntax. I usually use Eclipse and probably should start their and see if they support Python.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did do a little searching and stumbled upon and aptana Pydev extension for eclipse for Python,&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://pydev.org/download.html&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So I will try and get this working before I start the coding process of uploading my books.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;It is very simple on ubuntu to install eclipse just use&lt;/span&gt;&lt;/b&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;sudo apt-get install eclipse&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It was fairly simple to add the extension on Eclipse – I just used the Quick Install method on the pydev.org&lt;br /&gt;&lt;br /&gt;Quick Install':&amp;nbsp; Update Manager  &lt;br /&gt;&lt;br /&gt;Go to the update manager (Help - Install New Software), add:  &lt;br /&gt;http://pydev.org/updates  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Select PyDev and clicked next and then accepted the license agreement and then I was ready to used Eclipse and Python to start the coding process.&lt;br /&gt;Once you open eclipse and go to New Project and select Pydev Project from the wizard – it will ask you to define an interpreters and I selected among the choices – Iron python, Jython and Python&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I gave it a project name MongoDB and used the default home location.&lt;br /&gt;Project type – I selected Python and the grammer version was default 2.6 since I have no preference for grammer versions at this point.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I clicked on configure interpreter and auto config button and it configured by System libs automatically saving me some time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is were the confusion started at this point – Eclipse is not as easy to configure as one might think you have to read some documentation to get the environment working so I followed the following information to get this to work -&lt;br /&gt;&lt;br /&gt;http://pydev.org/manual_101_root.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;I followed the manual and created a project &lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;file - new - project - Pydev - Pydev project  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Project Name: TestMongoDB  &lt;br /&gt;&lt;br /&gt;Use Defaults  &lt;br /&gt;&lt;br /&gt;Project Type = Python  &lt;br /&gt;&lt;br /&gt;GrammerVersion = 2.6  &lt;br /&gt;&lt;br /&gt;Interpreter Default  &lt;br /&gt;&lt;br /&gt;Create default 'src' folder and add it to the pythonpath? Is checked  &lt;br /&gt;&lt;br /&gt;Finish&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;I then followed the manual to create a python package &lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;File - new - pydev package  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I changed the Source Folder to my /TestMongoDB/src and Name = testmongo.test → Finish&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After this you will need to create a pydev module  &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;File - new - pydev module    &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Ensure the source folder is correct   &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Package name is the same as the one you just created   &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Template =   &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Name of the actual script – I called this cbentries  &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Once my &lt;span style="font-size: large;"&gt;&lt;b&gt;cbentries.py&lt;/b&gt;&lt;/span&gt; file was created – used the following code to test the db, environment and code&lt;br /&gt;'''  &lt;br /&gt;Created on May 1, 2010&lt;br /&gt;@author: Tim  &lt;br /&gt;'''&lt;br /&gt;from pymongo.connection import Connection  &lt;br /&gt;&lt;br /&gt;connection = Connection('localhost')&lt;br /&gt;&lt;br /&gt;db = connection.mystorage  &lt;br /&gt;&lt;br /&gt;doc1 = {"timestamp":001, "msg":"Hello 1"} &lt;br /&gt;&lt;br /&gt;doc2 = {"timestamp":002, "msg":"Hello 2"} &lt;br /&gt;&lt;br /&gt;doc3 = {"timestamp":003, "msg":"Hello 3"} &lt;br /&gt;&lt;br /&gt;db.mystorage.save(doc1)  &lt;br /&gt;&lt;br /&gt;db.mystorage.save(doc2)  &lt;br /&gt;&lt;br /&gt;db.mystorage.save(doc3)&lt;br /&gt;&lt;br /&gt;cursor = db.mystorage.find()  &lt;br /&gt;for d in cursor:&lt;br /&gt;print d&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Once the code was modified for mystorage I then clicked on the Run As button and selected&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Python Run → Ok&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This was the final result of my test – Success – now I can work on getting documents and a user friendly interfact – once this has been completed then I will post the code and probably some lessons learned.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{u'msg': u'Hello 1', u'timestamp': 1, u'_id': ObjectId('4bdcbaee50f9092884000000')}  &lt;br /&gt;{u'msg': u'Hello 2', u'timestamp': 2, u'_id': ObjectId('4bdcbaee50f9092884000001')}  &lt;br /&gt;{u'msg': u'Hello 3', u'timestamp': 3, u'_id': ObjectId('4bdcbaee50f9092884000002')}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;GridFS -----------------------------&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will need to use GridFS to store the acutal files into Mongo.&lt;br /&gt;The database supports native storage of binary data within BSON objects.&amp;nbsp; However, BSON objects in MongoDB are limited to 4MB in size.&lt;br /&gt;&lt;br /&gt;The GridFS spec provides a mechanism for transparently dividing a large file among multiple documents. This allows us to efficiently store large objects, and in the case of especially large files, such as videos, permits range operations (e.g., fetching only the first N bytes of a file).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So now the adventure begins in trying to use GridFS to upload my large pdf files,&lt;br /&gt;Reference:  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://dirolf.com/2010/03/29/new-gridfs-implementation-for-pymongo.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is what I have so far using GridFS – this is working great – I will now start the process of searching through a folder and capturing names and extensions of files and auto importing them into my db.&lt;br /&gt;'''  &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Created on May 1, 2010&lt;br /&gt;@author: Tim  &lt;br /&gt;'''&lt;br /&gt;from pymongo import Connection  &lt;br /&gt;connection = Connection('localhost')  &lt;br /&gt;from gridfs import GridFS  &lt;br /&gt;db = connection.mystorage  &lt;br /&gt;fs = GridFS(db)  &lt;br /&gt;with open("/home/t/Pictures/Photos/warty-final-ubuntu.png") as myimage:  &lt;br /&gt;oid = fs.put(myimage, content_type="image/pnp", filename="myimage")&lt;br /&gt;print fs.get(oid)._file #THis will give me the file entries  &lt;br /&gt;print fs.get(oid)._id #This will give me the id of the entries  &lt;br /&gt;print fs.get(oid).__sizeof__() # This will give me the size of the file in memory  &lt;br /&gt;print fs.get(oid).name # This is the name of my file  &lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-1016626922441566245?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/1016626922441566245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/installing-mongodb-and-python-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1016626922441566245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/1016626922441566245'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/installing-mongodb-and-python-with.html' title='Installing MongoDb and Python with eclipse on Ubuntu 9.10'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8733369160753739059.post-7369638125539820151</id><published>2010-06-12T14:51:00.000-07:00</published><updated>2010-06-12T15:59:51.470-07:00</updated><title type='text'>Enabling a SSH Host and managing Iptable the Ubuntu semi-GUI way</title><content type='html'>Iptables is installed by default on Ubuntu 10.04 - this is a new ubuntu build - so last night when I tried to SSH into my new box - I received an port 22: Connection refused - &lt;br /&gt;&lt;br /&gt;When I remembered that I do not have an SSH Server and default iptables configured&amp;nbsp; -&amp;nbsp; I needed to complete a couple steps prior to connecting to my server from my laptop. &lt;br /&gt;&lt;br /&gt;Step 1.&lt;br /&gt;&lt;br /&gt;Install a SSH Server - This is pretty simple using apt-get &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;sudo apt-get install openssh-server&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After all unpacking and RSA key generation is completed - I moved on to the next step of the process .&lt;br /&gt;&lt;br /&gt;Step 2 &lt;br /&gt;&lt;br /&gt;I am pretty lazy and usually do not remember all of the commands to configure my Iptables through the command line, I decided to use firestarter - &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;sudo apt-get install firestarter&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It is probably good to remember how to configure manually -&amp;nbsp; so here it is.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT&lt;br /&gt;&lt;br /&gt;sudo iptables-save &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8733369160753739059-7369638125539820151?l=ubuntumongol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ubuntumongol.blogspot.com/feeds/7369638125539820151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/by-default-iptable-is-installed-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/7369638125539820151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8733369160753739059/posts/default/7369638125539820151'/><link rel='alternate' type='text/html' href='http://ubuntumongol.blogspot.com/2010/06/by-default-iptable-is-installed-by.html' title='Enabling a SSH Host and managing Iptable the Ubuntu semi-GUI way'/><author><name>ubuntumongol</name><uri>http://www.blogger.com/profile/12731163638223533639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-qB68v70PYtg/TVXMpdVSfTI/AAAAAAAAACQ/cvINGCZt8cM/s220/Linux_Jedi.jpg'/></author><thr:total>0</thr:total></entry></feed>
