Friday, October 23, 2015

Ported libusi++ to OSX. While doing so it was necessaryto lowercase all the enums like IPPROTO_UDP as the Xcodecompiler also tries to expand the enums (unlike gcc).And as macro definitions pollute the global namespacefrom either netinet/in.h or dnet, this was necessary. Its muchcleaner code now and also works with -pedantic.While porting libusi++ to OSX, it was therefore necessaryto adjust some of the other code to reflect lowercaseenums, such as QI. Also polished QI to work against theDarwin TCP stack, so its now possible to QUANTUM INSERTinto Safari. Seems like the Darwin TCP stack requires nonzeroTCP window and Safari ACKed GET requests before acceptingthe (injected) reply.After all TCP/IP stacks evolve over time and theres enoughrelaxing space in the RFCs to break INSERT tools by smallsemantic changes in the TCP stacks (sometimes called fingerprinting). So dont expect QI as-isto work in 10 years. Interesting to see that such quite simpletechnique still contains some pitfalls.All in all that was fun with lost packets. Tomorrow bikingto lost places to shoot some nice pictures of lost sofas. :)