Riremito

PacketEditor GUI

Oct 23rd, 2016
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include<Windows.h>
  2. #include"gui.h"
  3. #include"gui_pe.h"
  4.  
  5. gui pe;
  6. list log;
  7.  
  8. #define C_SENDHOOK 101
  9. #define C_RECVHOOK 102
  10. #define E_RETURNADDRESS 201
  11. #define E_PACKET 202
  12. #define E_FORMAT 203
  13. #define B_CLEAR 301
  14. #define B_SEND 302
  15.  
  16. void gui_create(HWND hWnd){
  17.     pe.CheckBox(C_SENDHOOK, "SendHook", 110, 500, true);
  18.     pe.CheckBox(C_RECVHOOK, "RecvHook", 220, 500, true);
  19.    
  20.     pe.EditBox(E_RETURNADDRESS, "", 3, 500, 100);
  21.     pe.EditBox(E_PACKET, "", 3, 520, 550);
  22.     pe.EditBox(E_FORMAT, "", 3, 540, 550);
  23.     pe.Button(B_CLEAR, "Clear", 330, 500);
  24.     pe.Button(B_SEND, "Send", 560, 520);
  25.    
  26.     //List Control
  27.     log.Set(hWnd, 3, 3, 594, 494);
  28.     log.AddHeader("Type", 40);
  29.     log.AddHeader("Return", 60);
  30.     log.AddHeader("Length", 50);
  31.     log.AddHeader("Packet", 400);//Format Packet
  32.     log.AddHeader("", 0);//Original Packet
  33. }
  34.  
  35. void gui_control(WORD wID){
  36.     switch(wID){
  37.     case B_CLEAR:
  38.         log.Clear();
  39.         break;
  40.     default:
  41.         break;
  42.     }
  43. }
  44.  
  45. void gui_notify(HWND hWnd){
  46.     if(hWnd == log.GetHWND()){
  47.         char Buffer[1024 * 4];
  48.         log.GetSelectedItem(1, Buffer);
  49.         if(!Buffer[0]){
  50.             return;
  51.         }
  52.         pe.SetString(E_RETURNADDRESS, Buffer);
  53.         log.GetSelectedItem(4, Buffer);
  54.         pe.SetString(E_PACKET, Buffer);
  55.         log.GetSelectedItem(3, Buffer);
  56.         pe.SetString(E_FORMAT, Buffer);
  57.     }
  58. }
  59.  
  60. #include<stdio.h>
  61. char Buffer[65536];
  62. void _stdcall AddLog(DWORD Type, DWORD dwReturn, DWORD Length, BYTE *Packet, char *Format){
  63.     if((Type == 0 && !pe.CheckBoxStatus(C_SENDHOOK)) || (Type == 1 && !pe.CheckBoxStatus(C_RECVHOOK))){
  64.         return;
  65.     }
  66.     if(Type == 0){
  67.         log.AddItem(0, "Out");
  68.     }
  69.     else{
  70.         log.AddItem(0, "In");
  71.     }
  72.     sprintf(Buffer, "%08X", dwReturn);
  73.     log.AddItem(1, Buffer);
  74.     sprintf(Buffer, "%d", Length);
  75.     log.AddItem(2, Buffer);
  76.     log.AddItem(3, Format);
  77.     sprintf(Buffer, "@%04X", *(WORD *)&Packet[0 + Type * 4]);
  78.     for(int i=2; i<Length; i++){
  79.         sprintf(&Buffer[strlen(Buffer)], " %02X", Packet[i + Type * 4]);
  80.     }
  81.     log.AddItem(4, Buffer);
  82. }
  83.  
  84. void gui_pe(HINSTANCE hInstance){
  85.     pe.Run(hInstance, "Packet Test", 800, 600, gui_create, gui_control, gui_notify);
  86. }
Add Comment
Please, Sign In to add comment