geecon_logo2011
left_sepimageright_sep
speaker details
Anton Arhipov
Software Engineer and JRebel Product Lead at ZeroTurnaround. Prior to joining ZeroTurnaround worked as a developer and team leader in one of the largest banks in the Baltics. Apart of every day work co-ordinating the local developers community group in Tallinn - Devclub (http://www.devclub.eu, http://www.devclub.ee). Meanwhile, studying computer engineering at PhD level in Tallinn University of Technology. Blogging at http://arhipov.blogspot.com

lecture

Binary patching of Java classes for fun (and profit)

The what/why/how of runtime binary patching of JAVA applications, frameworks and application servers to provide custom integration. We will follow the JRebel integration story from dirty bytecode insertions to readable Java code patches. The session is intended for advanced Java developers interested in patching or integrating with binary java applications.

We will look at the different problems that arise when doing runtime binary patching of different Java applications and frameworks.

  • What and why is a binary patching?
  • Tools, methods and tips
  • Sample use-cases of binary patching different systems
  • Pros/cons


  • Bytecode for discriminating developers

    If you never goofed around with assembler or machine code Java bytecode can seem an obscure piece of low-level magic. But sometimes things go really wrong and understanding that bit may be what stands between you and solving the problem at hand. Looking to deepen you Java programming skills? Understanding bytecodes is necessary to solve performance issues, some classloading issues and to generate code at runtime. And some things you can do are just plain freakin' cool. This talk will introduce you the JVM and bytecode basics using live coding examples. It's my hope that you'll walk out armed for the next battle with low-level issues. From the basics, to more advanced gotchas: * How to obtain the bytecode listings * How to read the bytecode * How the language constructs are mirrored by the compiler: local variables, method calls, optimizations, autoboxing, exception handling, etc * insight to some bytecode manipulation libraries (ASM, Javassist)



    sponsors

    »  complete list of sponsors