Chủ đề: Send dữ liệu qua open socket id.
-
22-05-2011, 10:51 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thanks các bạn đã trả lời.Mình unhook như trên và bị lỗi nên mới nhờ mọi người chỉ cho cách unhook tốt hơn.
Mình đã copy lại socket mà game đã open đấy,và gửi dữ liệu qua chính socket đã copy nhưng mà ko thành công.View more random threads:
- Hook 1 Process WM_CREATE
- Làm thế nào để liên kết các hàm đã export trong 1 dll. (proxy function )
- Hàm native API NT CreateProcess
- Sử dụng CloseHand() bị crash
- Microsoft Transaction Server Sử dụng thế nào trong VC++
- Áp Dụng Mô Hình Hướng đối tượng vào Hàm CallBack,Hook ... ?
- Cách truyền tham số cho hàm SHGetFileInfo
- Cách lấy thread start address và suspend start address
- Sử dụng Hook WH_CALLWNDPROC, hok chạy đc
- CallBack dùng để làm gì?
-
22-05-2011, 02:17 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Send dữ liệu qua open socket id.
Mình đang tìm cách lập trình auto cho game online.Mình đã viết file hook.dll để hook vào hàm send trong modul Ws2_32.dll.Để ép khi hàm send được gọi thì chuyển hướng đến hàm mysend do tự mình viết.
Mã:int WSAAPI MySend( SOCKET s, const char FAR * buf, int len, int flags ) { memcpy(&sGame,&s,sizeof(sGame)); UnHookAPI(); int i = send( s, buf, len, flags ); return i; }
const UINT WM_HOOK_SEND = RegisterWindowMessage("WM_HOOK_SEND"); để từ chuơng trình auto mình gửi SendMessage(hwnd,WM_HOOK_SEND,1,0) là sẽ gọi hàm send ở dll(thực chất là game sẽ gọi hàm send).
Mã:LRESULT CALLBACK NewWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == WM_HOOK_WRITE) { //Setting Parameters if (wParam == 1) { char c[] = {0xB7 ,0xA9 ,0xCB ,0xCD ,0x8B ,0xB1 ,0x82 ,0x56 ,0x20 ,0x00 ,0x00 ,0x00 ,0x80 ,0x49 ,0xB5 ,0x47 ,0xAE ,0x97 ,0x79 ,0x45 ,0x00 ,0x6F ,0xC7 ,0x47 ,0x11 ,0x13 ,0x00 ,0x00 ,0x7A ,0xA8 ,0x10 ,0x00 ,0x01 ,0x00 ,0x00 ,0x00}; send(sGame,c,strlen(c),0); return 0; } if (wParam == 2) { UnHookAPI(); FreeLibrary(MyModuleHandle); return 0; } } return CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam); }
1)Mình gọi hàm send qua socket mình copy lại từ socket mà game đã mở với dữ liệu của mình như trên thì thấy game không ra skill như mình muốn.Vậy có cách nào send packet qua socket id đã mở sẵn không?
2)Mình gọi hàm SendMessage(hwnd,WM_HOOK_SEND,2,0) để unhook nhưng process game bị đóng luôn,dll không tự giải phóng được chính nó à?
Note:trong bài viết có xử dụng api hook của bạn mèo lông vàng tại
http://forums.congdongcviet.com/showthread.php?t=9820
-
22-05-2011, 03:38 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mình thấy bạn Unhook luôn thế kia là không hay rồi, chương trình chạy đa luồng thì sao, bạn đã tính đa luồng chưa
Hook hàm send thì luôn send được dữ liệu qua socket đã mở
-
22-05-2011, 04:54 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình nghĩ bạn đã sai lầm khi unhook , bởi vì mấy loại game này nó create/close socket liên tục ,nên id socket cũng bị thay đổi , do đó bạn send không được.Nếu bạn sử dùng WPE thì bạn sẽ thấy điều này
-
22-05-2011, 05:03 PM #5Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 0
bạn chỉ việc copy SOCKET s ra ngoài hàm MySend rồi send qua SOCKET s thôi mà.Cần gì mà phải subclass chứ
-
23-05-2011, 09:17 AM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Theo mình thì game có open và create socket liên tục đâu,wpe nó chỉ open lại socket đã mở cũ rùi gửi qua đấy mà.Nếu mình chọn open new socket để gửi thì game cũng đâu có nhận được packet.
-
29-05-2011, 03:33 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi Nobita_cpp
Sao bạn không thử cách đơn giản hơn là dùng các hàm sẵn có của client, rồi để client tự thực hiện quá trình send dữ liệu đến server [IMG]images/smilies/smile.png[/IMG].
Bất chấp những lầm tưởng phổ quát, hồ hết những người có âm đạo đều khó lên đỉnh khi bị kích thích âm đạo. Tuy nhiên, điều đó không có tức thị nó không thể vui được! Việc xâm nhập vào âm đạo bằng...
Quý bà giải tỏa bằng việc kích...