2009-02-13 31 views
5

Tôi có một cửa sổ ứng dụng exe được sử dụng để gửi các gói tin đến một máy chủ trong rõ ràng. Ứng dụng này (cho phép gọi nó là ứng dụng khách hàng) chắc chắn là gần nguồn gốc, nhưng một số hacker thông minh hex-edited các nhị phân, và làm cho nó gửi các gói được scrambled. Bây giờ, rõ ràng, các gói đó được tranh giành theo cách có thể giải mã được (nếu không máy chủ không thể hiểu nó), nhưng điều tôi muốn làm là viết trình mô phỏng giả lập ứng dụng nhị phân này, gửi cùng một gói cho máy chủ và có thể xắp xếp lại phản hồi (nếu nó bị tranh giành).Làm cách nào tôi có thể đảo ngược các kỹ sư phân tích các gói trong ứng dụng cửa sổ?

Trình khách Hex-ed yêu cầu thêm dll để chạy, ứng dụng khách cũ không sử dụng. Tôi giả định rằng bằng cách nào đó trình khách hex-ed quản lý để tải dll đó (cho phép gọi nó là client.dll) và chức năng của dll đó là thực hiện việc xáo trộn/xáo trộn, bằng cách hooking vào một số cửa sổ api để định tuyến lại tất cả các gói được gửi từ quá trình client.exe.

Nếu có ai có thể hướng dẫn tôi cách bắt đầu tìm hiểu cách thức này hoạt động, và cách tôi có thể đảo ngược kỹ năng tranh giành, điều đó sẽ thực sự được đánh giá cao.

Tôi không biết nên cung cấp loại thông tin nào, nhưng nếu thiếu, chỉ cần trả lời và tôi sẽ đăng thêm chi tiết và nếu có ai muốn các tệp nhị phân, tôi vui lòng cung cấp.


tải nhị phân cho bất kỳ bên liên quan:

http://dl.getdropbox.com/u/46623/client.dll

http://dl.getdropbox.com/u/46623/newClient.exe

http://dl.getdropbox.com/u/46623/originalClient.exe

Những wont chạy vì các tập tin tài nguyên được yêu cầu - họ là khoảng 3 hợp đồng biểu diễn, vì vậy quá lớn để tải lên bất cứ đâu. Tên đã được thay đổi để bảo vệ guilty =), nhưng điều đó có lẽ không bảo vệ tên của dll ...

Trả lời

3

Tôi giả định rằng người đó mã này móc mà thêm mã hóa để các gói dữ liệu I/O cho chương trình nói trên đã hoặc nối Windows có liên quan API socket (WSASend, send, vv) hoặc nối các hàm chương trình nội bộ được sử dụng để gửi/nhận dữ liệu.

Điều này đang được nói, tôi khuyên bạn nên sử dụng chương trình phát hiện móc (ví dụ: RkUnhooker) để tìm hiểu điều gì đang thực sự được nối. Một khi bạn biết những gì các API được nối, bạn cũng nên biết nơi các móc này đang đi và từ đó trở đi, bạn sẽ phải tự tay thiết kế lại các hàm móc.

Đối với chủ đề học cách làm điều này, tôi không thể hướng dẫn bạn chỉ một hướng dẫn để dạy cho bạn mọi thứ nhưng tôi khuyên bạn nên xem trang web Tuts4You, nó có rất nhiều hướng dẫn sẽ đáp ứng tất cả về nhu cầu của bạn.

Nếu có thể, hãy tải lên bản sao của ứng dụng khách đã chỉnh sửa & DLL móc, nếu tôi có thời gian tôi sẽ mã cho bạn mã hóa bản sao & các chức năng giải mã.

+0

cảm ơn vì lời đề nghị trợ giúp - tôi có thể tải lên tệp nhị phân và dll nếu bạn thích, nhưng bạn sẽ không thể chạy nó mà không có tệp tài nguyên hỗ trợ, có ở 3gig khổng lồ (đó là khách hàng trò chơi). Và không, tôi không cố lừa dối, chỉ cố gắng cạnh tranh với khách hàng. – Chii

+1

Chỉ cần tải lên một bản sao của mô-đun móc, tôi sẽ có thể trích xuất các thuật toán mã hóa và giải mã từ nó. – Irwin

+0

đã tải lên và chỉnh sửa bài đăng gốc ở dưới cùng. chúc mừng! – Chii

2

Bạn cần móc các hàm được xuất bởi DLL bổ sung và nhìn vào các hàm được gọi và các tham số đang được truyền cho họ. Điều này sẽ không dễ dàng vì bạn không có thông tin về loại (ví dụ: chữ ký hàm cho xuất DLL.)

Hãy xem here để biết một số thông tin về ghép nối API. Bạn cũng sẽ cần một trình gỡ lỗi tốt thử Windbg từ microsoft.

Theo như tôi có thể thấy tùy chọn duy nhất bạn có ở đây là thử nghiệm hộp đen tức là cung cấp cho đầu vào được biết đến cả hai hệ thống và so sánh phản ứng với nhau để tìm sự khác biệt và tương đồng.

Bây giờ, khi bạn tìm hiểu cách sử dụng các hàm từ dll bổ sung, bạn có thể sử dụng nó theo cách tương tự như ứng dụng gốc.

Các vấn đề liên quan