kiwidog

Untitled

May 1st, 2015
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. DWORD dwUFunction, dwVoid1, dwVoid2;
  2. DWORD dwJMPback = 0x101375A6; // you could aswell jump back at 0x101375A5
  3. ...
  4.  
  5. __declspec(naked) void _OurFunction()
  6. {
  7.     __asm
  8.     {
  9.         PUSH EDX //save the register
  10.        
  11.         MOV EDX, DWORD PTR [EBP]
  12.         MOV dwUFunction, EDX
  13.        
  14.         MOV EDX, DWORD PTR [EBP + 0x4]
  15.         MOV dwVoid1, EDX
  16.        
  17.         MOV EDX, DWORD PTR [EBP + 0x8]
  18.         MOV dwVoid2, EDX
  19.        
  20.         POP EDX //restore the register
  21.        
  22.         // Do your hax stuff, etc.
  23.         // but REMEBER TO PRESERVE THE STACK & REGISTERS !!!
  24.        
  25.         // WE HAVE TO EXECUTE THE OVERWRITTEN INSTRUCTIONS !!!!
  26.         MOV DWORD PTR [EBP - 0x10], ESP
  27.         MOV DWORD PTR [EBP - 0x14], ESI
  28.        
  29.         // now we can jump back ^^
  30.        
  31.         JMP [ dwJMPback ]
  32.    
  33.        
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment