Reverse Engineering for Beginners
CHAPTER 50. OBFUSCATION CHAPTER 50. OBFUSCATION 50.2 Executable code 50.2.1 Inserting garbage Executable code obfuscation implie ...
CHAPTER 50. OBFUSCATION CHAPTER 50. OBFUSCATION Can be replaced with: begin: jmp ins1_label ins2_label: instruction 2 jmp ins3_l ...
CHAPTER 51. C++ CHAPTER 51. C++ Chapter 51 C++ 51.1 Classes. 51.1.1 A simple example Internally, the representation of C++ class ...
CHAPTER 51. C++ CHAPTER 51. C++ Listing 51.1: MSVC _c2$ = -16 ; size = 8 _c1$ = -8 ; size = 8 _main PROC push ebp mov ebp, esp s ...
CHAPTER 51. C++ CHAPTER 51. C++ ; _this$ = ecx push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov eax, DWORD PTR ...
CHAPTER 51. C++ CHAPTER 51. C++ ret 8 ??0c@@QAE@HH@Z ENDP ; c::c ?dump@c@@QAEXXZ PROC ; c::dump, COMDAT ; _this$ = ecx mov eax, ...
CHAPTER 51. C++ CHAPTER 51. C++ GCC—x86 It is almost the same story in GCC 4.4.1, with a few exceptions. Listing 51.6: GCC 4.4.1 ...
CHAPTER 51. C++ CHAPTER 51. C++ mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_4] mov [eax], edx mov eax, [ebp+arg_0] mov e ...
CHAPTER 51. C++ CHAPTER 51. C++ mov DWORD PTR [rdi], 667 mov DWORD PTR [rdi+4], 999 ret ; c(int a, int b) _ZN1cC2Eii: mov DWORD ...
CHAPTER 51. C++ CHAPTER 51. C++ }; }; int main() { box b(1, 10, 20, 30); sphere s(2, 40); b.print_color(); s.print_color(); b.du ...
CHAPTER 51. C++ CHAPTER 51. C++ add esp, 12 ret 0 ?dump@sphere@@QAEXXZ ENDP ; sphere::dump So, here is the memory layout: (base ...
CHAPTER 51. C++ CHAPTER 51. C++ The code generated by GCC is almost the same, with the sole exception of passing thethispointer ...
CHAPTER 51. C++ CHAPTER 51. C++ }; Nevertheless, if we cast theboxtype to apointer to an int array, and we modify the array ofin ...
CHAPTER 51. C++ CHAPTER 51. C++ }; }; class solid_object { public: int density; solid_object() { }; solid_object(int density) { ...
CHAPTER 51. C++ CHAPTER 51. C++ ret 0 ?dump@box@@QAEXXZ ENDP ; box::dump Listing 51.13: Optimizing MSVC 2008 /Ob0 ?dump@solid_ob ...
CHAPTER 51. C++ CHAPTER 51. C++ Listing 51.16: Optimizing MSVC 2008 /Ob0 ?get_density@solid_object@@QAEHXZ PROC ; solid_object:: ...
CHAPTER 51. C++ CHAPTER 51. C++ printf ("this is box. color=%d, width=%d, height=%d, depth=%d\n", color, width,⤦ Çheight, depth) ...
CHAPTER 51. C++ CHAPTER 51. C++ A pointer to thedump()function is taken somewhere from the object. Where could we store the addr ...
CHAPTER 51. C++ CHAPTER 51. C++ Some additional CPU time is needed for doing look-ups in these tables and finding the right virt ...
CHAPTER 51. C++ CHAPTER 51. C++ f(f(std::cout, "Hello, "), "world!"); GCC generates almost the same code as MSVC. 51.3 Reference ...
«
23
24
25
26
27
28
29
30
31
32
»
Free download pdf