Results 1 to 12 of 12

Thread: Qt Internals & Reversing

  1. #1
    Registered User
    Join Date
    Jan 2008
    Posts
    163
    Blog Entries
    19

    Qt Internals & Reversing

    Today I took a break from the larger article I'm currently writing. To relax, I wrote a smaller article about the Qt framework. I hope you enjoy.

    Qt Internals & Reversing

    Half of the text of this article comes from my larger paper "Dynamic C++ Proposal". I decided that it was useful to take the part about Qt internals, put it into another article and extend it by adding a reversing part. Because of its nature, this is not the usual kind of article I write. In fact, I wrote the reversing part in less than a day. So, this is a very easy one. However, I think it is useful for people who need to reverse a Qt application and certainly wouldn't consider reading my other paper about Dynamic C++, which doesn't sound like a paper about Qt and, in fact, isn't a paper about Qt: the paragraph about Qt is only one among many others. Moreover, I haven't seen serious articles about this subject.

    The first thing which needs to be considered when reversing Qt applications is what Qt brought to the C++ language. Events (inside the Qt framework) are just virtual functions, so nothing new there. This is not a C++ reversing guide. What is new in Qt are signals and slots, which rely on the dynamism of the Qt framework.

    So, first thing I'm going to show how this dynamism works. The second part focus on reversing and, at that point, I will show how to obtain all the metadata one needs when disassembling a "Q_OBJECT" class.

    http://ntcore.com/Files/qtrev.htm
    Last edited by Daniel Pistelli; November 27th, 2008 at 20:24.

  2. #2
    Administrator dELTA's Avatar
    Join Date
    Oct 2000
    Location
    Ring -1
    Posts
    4,206
    Blog Entries
    5
    Another unique and informative article Daniel, thanks for sharing as usual!
    "Give a man a quote from the FAQ, and he'll ignore it. Print the FAQ, shove it up his ass, kick him in the balls, DDoS his ass and kick/ban him, and the point usually gets through eventually."

  3. #3
    very nice, tnx for share

  4. #4
    Hey Daniel,

    nice indeed
    what are you covering in "Dynamic C++ Proposal"
    Found in the OpenGL header file for Visual C++ 6: 'typedef GLint int '. AAAARRRRGGGHHHH!!! [Don't get it? You're not a C programmer.]

    A hacker does for love what others would not do for money.

    Being married to a programmer is like having a cat. You talk to it but you're never really sure if it hears you, much less comprehends what you say.

  5. #5
    Registered User
    Join Date
    Jan 2008
    Posts
    163
    Blog Entries
    19
    Thanks delta, deroko & GEEK.

    GEEK: I answer your question by quoting two answers I gave on my ntcore blog:

    The big article is a proposal to extend significantly the C++ language. It's quite an extensive paper, since it covers the internals of the suggestions as well.
    D lacks dynamism just like C++ does. Surely, it's a controversial task and I may get criticized. But frankly I don't care, I don't get paid for writing articles and so I write about things I'm interested in or care about. I care about the future of C++ since it's my favourite programming language. In my paper I'm going to show that C++ could have all the capabilities other languages such as objc have and many more.
    I think I'll post that article on RCE Forums as well, since it has much to do with c++ internals.

  6. #6
    and when can we expect it
    Found in the OpenGL header file for Visual C++ 6: 'typedef GLint int '. AAAARRRRGGGHHHH!!! [Don't get it? You're not a C programmer.]

    A hacker does for love what others would not do for money.

    Being married to a programmer is like having a cat. You talk to it but you're never really sure if it hears you, much less comprehends what you say.

  7. #7
    Daniel, nice to see you still around here. Will you also cover new syntax elements introduced with C++0x in your paper?

  8. #8
    Registered User
    Join Date
    Jan 2008
    Posts
    163
    Blog Entries
    19
    GEEK: 10 days, I guess

    anom: thanks =). Honestly no, because C++0x doesn't have much to do with my suggestions. I think that many of the new elements are good, but my effort focuses on dynamism and related to that there's nothing new in C++0x.

    It may be the most useless and extensive paper I have written.

  9. #9
    Solid and Unique material. You really know your stuff. Thanks!
    Externalist

  10. #10
    Registered User
    Join Date
    Jan 2008
    Posts
    163
    Blog Entries
    19
    Thanks Externalist. As said, this is a little article, but it can be useful since Qt applications will grow in number if I'm right in my thinking.

  11. #11
    Registered User
    Join Date
    Aug 2005
    Location
    Italy
    Posts
    133
    Blog Entries
    31
    Surgery precision Paper as usual Daniel!

    This paper will come really handy for Qt RCE

    Regards,
    Giuseppe

    http://evilcry.netsons.org (Repository)
    http://evilcodecave.blogspot.com
    http://evilcodecave.wordpress.com

  12. #12
    Registered User
    Join Date
    Jan 2008
    Posts
    163
    Blog Entries
    19
    Thanks =)

Similar Threads

  1. NTFS MFT Internals
    By WaxfordSqueers in forum Advanced Reversing and Programming
    Replies: 153
    Last Post: March 26th, 2014, 15:03
  2. .NET Internals and Native Compiling
    By Daniel Pistelli in forum Blogs Forum
    Replies: 13
    Last Post: July 25th, 2008, 20:55
  3. .NET Internals and Code Injection
    By Daniel Pistelli in forum Blogs Forum
    Replies: 15
    Last Post: May 13th, 2008, 05:55
  4. InTether Protection System Reversing...Reversing Kernel Code
    By tHE mUTABLE in forum Advanced Reversing and Programming
    Replies: 1
    Last Post: December 20th, 2007, 10:48
  5. SEH Internals - Info Requested
    By Clandestiny in forum Advanced Reversing and Programming
    Replies: 10
    Last Post: June 12th, 2002, 06:23

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •