Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. struct PACKET {
  2. DWORD Null;
  3. LPVOID lpData;
  4. DWORD nSize;
  5. DWORD Null2;
  6. };
  7.  
  8. typedef DWORD (__stdcall *SENDPACKET)(PACKET *Buffer);
  9.  
  10. SENDPACKET SendPacket;
  11.  
  12. char* Buffer = NULL;
  13.  
  14. DWORD SendAddy = 0x0048FD56;// ems v60 0x004783DB; // aob = B8 ? ? ? ? E8 ? ? ? ? 83 EC 14 53 56 8B F1 8D 9E 80 00 00 00 57 8B CB 89 5D F0 E8
  15. //DWORD ClassAddy = 0x0046850A;//0x00462778;//0x0045DF3E; // aob = 8B 0D ?? ?? ?? ?? 83 65 ?? ?? 8D 45 ?? 50 E8 ?? ?? ?? ?? 83 4D ?? ?? 8D ?? ??
  16. //v 58 send = 00477371
  17. //v 58 Class = 0045CC8C
  18.  
  19.  
  20. DWORD PESendJmp = SendAddy + 5;
  21. DWORD PEClass = 0x00B301D8;//*(DWORD*)&Buffer[ClassAddy+2]; // check 8B 0D ?? ?? ?? ?? 83 65 ?? ?? 8D 45 e4 50 E8 ?? ?? ?? ?? 83 4D ?? ?? 8D 4d e8 c7
  22.  
  23. inline char* atohx(char* dst, const char * src)
  24. {
  25. char *ret = dst;
  26. for(int lsb, msb; *src; src += 2)
  27. {
  28. msb = tolower(*src);
  29. lsb = tolower(*(src + 1));
  30. msb -= isdigit(msb) ? 0x30 : 0x57;
  31. lsb -= isdigit(lsb) ? 0x30 : 0x57;
  32. if((msb < 0x0 || msb > 0xf) || (lsb < 0x0 || lsb > 0xf))
  33. {
  34. *ret = 0;
  35. return NULL;
  36. }
  37. *dst++ = (char)(lsb | (msb << 4));
  38. }
  39. *dst = 0;
  40. return ret;
  41. }
  42.  
  43. void WINAPI msSendPacketA(__in LPCSTR lpPacketStr)
  44. {
  45. SIZE_T stLen = strlen( lpPacketStr );
  46. SendPacket = (SENDPACKET)PESendJmp;
  47. PACKET Packet;
  48. ZeroMemory(&Packet, sizeof(PACKET));
  49.  
  50. Packet.nSize = stLen/2;
  51.  
  52. byte bPacket[150];
  53. Packet.lpData = atohx((char*)bPacket, lpPacketStr);
  54.  
  55. _asm
  56. {
  57. mov ecx, PEClass
  58. mov ecx, [ecx]
  59. }
  60. SendPacket( &Packet );
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement