Having a tailored cross compiler is a problem I encountered couple of times in the past. Of course there are solutions to that problem like great crosstool-ng or more complex buildroot. In most cases crosstool-ng (ct-ng) can solve them. But whatever the tool we use, it has always its own drawbacks. For ct-ng these are small number of supported versions of toolchain components and huge dependence of environment, where it is started. The latter is even more problematic, because of the way continuing interrupted build work in ct-ng. Obviously if you want to build in example one compiler for ARM and one for MIPS, both consisting of latest tools, then it is not a problem.
But I have another use case for compiling toolchains. I do some reverse engineering from time to time. Nowadays many products have Linux under the hood and often there is no chance to get any SDK for them. But having ability to build something for the device can help a lot, either to run it there, or link with found tools and run in emulator. But I could also imagine that outside the reverse engineering field there might be a need to get toolchain in exact configuration, which is sadly not available via ct-ng or buildroot. Anyway, in any case where ct-ng or buildroot are not applicable, there is third way – docker. And this is the way I chose. This is how CC Factory appeared. It is docker container that builds gcc cross compiler on first startup and lands you in an container that have working compiler for the platform of your choice. And it does not require big effort to port it for the next architecture, or different tool version, unless the changes between the versions were really significant. Continue reading “Meet CC Factory – a factory for cross compilers”
Few months ago, as part of an effort to reverse engineer Lenkeng LKV373A HDMI to Ethernet converter, I announced disassembly plugin for radare2. This week it has been officially released by radare2 team.
My patches are integrated into radare2 version 4.1.0 and 4.1.1. They also should be currently present in GUI variant of radare2 – Cutter. Its version 1.10 is based on radare2 code version 4.1.1.
At the moment of writing this, Arch Linux still do not have these versions in repository, but I expect updates will appear in few days.
The time has come to start completely new project. I was present on the net since 2009. Till now, I had blog, named after my nickname. It had some troubles, though. Biggest one was problem with indexing the site by Google, which started with fall of co.cc domain from its index.
Because of that, I decided to start something completely new. Now it is time to introduce re-ws.pl – RE WorkStation. This blog will be very similar to the first blog, but I am going to focus on widely understood reverse engineering (and from time to time some hacking, electronics and other random stuff). I already have bunch of projects in status ongoing or planned, so I hope to push lot of interesting stuff in following months.
Two things that should have its continuations very soon are JCOP topic and LKV373A reversing. On the first one, I already published dump of memory during pre-personalization process, together with highlighting of most important fields and in second article, I described process of pre-personalization itself. Next goal is to document whole API, available during the process. Second topic, the LKV373A, is now after describing of general structure of firmware image and creation of Wiki page on github to gather all publicly available knowledge about the device. As mentioned in the article about firmware, goals are to have ability to compute firmware checksum and learn the compression algorithm. I will try to push forward both topics as much as I can. And to prove that I can do something about that I am publishing second part of the story just now.
I hope my work here will be useful to many people, mostly those that does not take technology for granted and willing to know inner workings of their stuff.