People often ask me "How did you learn how to hack?" The answer: by reading. This page is a collection of the blog posts and other articles that I have accumulated over the years of my journey. Enjoy!
Math.random().Math.random is being used? So, what is the big deal? This function uses Multiply-with-Carry for the pseudo randomness. Can this be predicted? md5(blinding + winning percentage) BEFOREhand & shows this to the user; this is called the commit. So, what's the issue? Math.random (converted to hex) and the winning percentage is the value guessed by the user. By using the previous bug (output from random for the winning percentage) in tandem with the commit being shown (THREE RANDOM numbers in a row!) it is possible to KNOW where the randomness currently lies. CreateFile API with a symbolic link to a DEVICE_OBJECT. MmMapIoSpace or ZwMapViewOfSection are in the IAT table.memmove or known unsafe function is used.JMP 0x0) in order to get execution of the kernel thread from crashing. clock and data0 lines in order to KNOW when to trigger the glitch.clock and DATA0.VCCK_PMU; it will drop the power to gnd for a very short period of time in order to cause the glitch.
if (nextprimary < 0 && nextprimary >= NUMGUNS)
break;
syslog was called as an easy way to create ANOTHER vuln (format string issue). strcmp with the PLT of system! Now, just send a message with an easy /bin/sh and a shell was popped :) updater.ini file and an arbitrary file write with partial controllable data. This is important for later on. update.exe is digitally signed by Mozilla the specific version is not checked. So, an OLD updater can be inserted to the file path (for updating) and be used. This works as the classic rollback attack. SESSION_ID is set to ignoreAuth, which makes perfect sense. However, the permissions that are ignored are MUCH more than necessary for user creation. Now, all a user has to do, in order to have arbitrary access to all user account events, is put the user into the registering state!