Powered By Blogger

السبت، 29 أغسطس 2020

Reversing Some C++ Io Operations

In general decompilers are not friendly with c++ let's analyse a simple program to get familiar with it.
Let's implement a simple code that loads a file into a vector and then save the vector with following functions:

  • err
  • load
  • save
  • main


Lets identify the typical way in C++ to print to stdout with the operator "<<"


The basic_ostream is initialized writing the word "error" to the cout, and then the operator<< again to add the endl.




The Main function simply calls  "vec = load(filename)"  but the compiler modified it and passed the vector pointer as a parámeter. Then it bulds and prints "loaded  " << size << " users".
And finally saves the vector to /tmp/pwd and print "saved".
Most of the mess is basically the operator "<<" to concat and print values.
Also note that the vectors and strings are automatically deallocated when exit the function.


And here is the code:


Let's take a look to the load function, which iterates the ifs.getline() and push to the vector.
First of all there is a mess on the function definition, __return_storage_ptr is the vector.
the ifstream object ifs is initialized as a basic_ifstream and then operator! checks if it wasn't possible to open the file and in that case calls err()
We see the memset and a loop, getline read a cstr like line from the file, and then is converted to a string before pushing it to the vector. lVar1 is the stack canary value.

In this situations dont obfuscate with the vector pointer vec initialization at the begining, in this case the logic is quite clear.



The function save is a bit more tricky, but it's no more than a vector iteration and ofs writing.
Looping a simple "for (auto s : *vec)" in the decompiler is quite dense, but we can see clearly two write, the second write DAT_0010400b is a "\n"



As we see, save implememtation is quite straightforward.




Read more
  1. Hack Tools Online
  2. Hacking Apps
  3. Hacking App
  4. Hacking Tools And Software
  5. Blackhat Hacker Tools
  6. Pentest Automation Tools
  7. Hack Tools
  8. Nsa Hack Tools Download
  9. Hacker Tools Software
  10. Hacking Tools For Games
  11. Pentest Tools For Ubuntu
  12. Hacking Tools For Kali Linux
  13. Hack Apps
  14. Hacker Tools
  15. Hacker Search Tools
  16. Hacker Tools For Mac
  17. Physical Pentest Tools
  18. Hacking Tools Kit
  19. Hack Tool Apk
  20. Hacking Tools 2019
  21. Hacking Tools For Windows Free Download
  22. Hacking Tools For Windows Free Download
  23. Hack Apps
  24. Hacker Tools Free Download
  25. Hack Tools For Games
  26. Pentest Tools Port Scanner
  27. Hacker Search Tools
  28. Hacking Apps
  29. Hacker Tools
  30. Hacker Hardware Tools
  31. Hacking Tools Windows
  32. Hack Website Online Tool
  33. Pentest Tools Port Scanner
  34. Pentest Tools Linux
  35. Pentest Tools Apk
  36. Top Pentest Tools
  37. Black Hat Hacker Tools
  38. Best Hacking Tools 2020
  39. Hack Apps
  40. Pentest Tools Online
  41. Hacking Tools For Beginners
  42. Top Pentest Tools
  43. Pentest Tools For Android
  44. Pentest Tools Tcp Port Scanner
  45. Beginner Hacker Tools
  46. Physical Pentest Tools
  47. Underground Hacker Sites
  48. Hacker Tools
  49. Hack Tool Apk
  50. Easy Hack Tools
  51. Hack Tools Mac
  52. Pentest Tools Online
  53. Pentest Tools Website
  54. Hacking App
  55. What Is Hacking Tools
  56. Hack Tool Apk

ليست هناك تعليقات: