The progress in the last two weeks is enormous. List of Extremely Important Things To Do got five items shorter. But news of this kind are roughly equivalent to the summer headlines in the newspapers; now I want to tell you something different.
While testing MinGW compiler, I wrote a small console application:
int main() {
MessageBox(NULL,"I'm a little, little code in a big, big world... Hello, world!",
"Hello, world",MB_OK);
return 0;
}
Highly optimized release version of this code looks this way:
MinGW reserves space on the stack and moves arguments instead of pushing. But note the following: The order of arguments for MessageBox() is hOwner, Text, Caption, Type. MinGW has changed this order; still, OllyDbg 2 was able to recognize the arguments.
MinGW (in fact, GNU) is an excellent compiler, its only weakness is that many exotic APIs are not yet in the headers.