Mở Stredit và tải kết xuất bộ nhớ của bạn. Thông thường, Stredit vẫn còn hoạt động trong phiên bản mới nhưng đôi khi nó không, giống như gần đây. (v115 hoặc một cái gì đó) Trong trường hợp này, bạn cần phải chờ đợi cho Diamondo để cập nhật công cụ của ông. Bạn có lẽ có thể tìm thấy CWvsContext__OnPacket, nhưng nó phụ thuộc.Vì vậy sau khi bạn đã mở stredit với kết xuất bộ nhớ của bạn, hãy vào hộp tìm kiếm trong lọc và nhập này: (loại bỏ dấu ngoặc kép rõ ràng)"nội dung giống như '% thế hệ 1000% 'có dây khác bạn có thể sử dụng nhưng thế hệ 1000 là một i luôn luôn, sử dụng và tôi đã nhận sử dụng để nó. Bạn sẽ nhận được 1 quả sau đó. Nhận được nó của chuỗi ID và trở về ida (kết xuất bộ nhớ, không v95) và chuyển sang xem hex. ALT + I (giá trị ngay lập tức) và nhập vào ID. Bạn nên đánh dấu các tìm thấy tất cả chú ô. Nó không phải là cần thiết, nhưng tôi khuyên bạn nên nó, tôi sẽ giả định bạn đã làm trong trường hợp này. Sau khi tìm kiếm xong, bạn sẽ nhận được một danh sách tất cả các chức năng mà ID đó được gọi là. Bạn sẽ cần phải tìm kiếm abit mà thường chỉ có một chức năng với ID đó cho thế hệ 1000. Chọn một trong các chức năng bắt đầu với sub_ và nhấn F5. (Ngược với mã giả C) Cửa sổ mới sẽ bật lên có thể đáng sợ lúc đầu tiên, nhưng không sợ hãi, nó là khá đơn giản. Lưu ý rằng không có gì đặt tên, nó sẽ đều được đặt tên như v33, v2, v12 vv. Bây giờ, một khi bạn đã decompiled chức năng đó vào mã giả C, con trỏ của bạn sẽ được định vị đã ở nơi nơi mà ID đã được tìm thấy. Nếu nó có vẻ bất cứ điều gì như thế này, vXX = sub_XXXXXX (& vXX, 4918); (Thay x với số lượng, họ đã thay đổi tất cả thời gian và hay thường)nó rất có thể là một cuộc gọi StringPool. StringPool là đối tượng nơi tất cả các chuỗi trong các trò chơi đang được lưu trữ (Stredit trông cho tất cả các cuộc gọi và làm cho một danh sách rất lớn của họ hoặc một cái gì đó như thế)Bạn một cách an toàn có thể đổi tên các chức năng cho StringPool::GetString bằng cách định vị con trỏ của bạn trên chức năng đó và nhấn CTRL + N. Bây giờ bạn có thể tự hỏi, làm thế nào đã làm tôi biết tên cho chức năng này? Từ sai lầm của nexon, v95 rò rỉ pdb.Bây giờ mà bạn đã đặt tên chức năng đó, hãy kiểm tra các dòng chỉ ở trên nó, nó sẽ là một cái gì đó như sub_XXXXXX, đổi tên này để StringPool::GetInstance. Bây giờ bạn đã đặt tên 2 chức năng. Nhưng những gì chúng tôi thực sự muốn tìm cho bây giờ là CWvsContext__OnPacket. (Tên nhận từ v95 pdb một lần nữa) Chức năng đó là những gì cơ bản là bộ xử lý chính cho bất kỳ gói dưới 114 hoặc một cái gì đó, tôi quên. Khi tôi nói rằng xử lý, tôi không có nghĩa là NHẬN gói, tôi có nghĩa là gửi gói tin. Nếu bạn không biết, khi bạn viết gửi gói tin trong mã nguồn của bạn, nó đã được xử lý bởi các khách hàng. Khi gói tin được xử lý trong mã nguồn, nó không giống như gửi gói tin nhưng cho khách hàng. Thay vì đọc thời gian này mặc dù, nó là bằng văn bản. Kinda giống như một phản ứng sau khi một gói dữ liệu gửi.Nhưng dù sao, để tìm CWvsContext, nếu bạn đã sử dụng thế hệ 1000 cho chuỗi tham khảo của bạn, nó không nên cứng. Đơn giản chỉ cần di chuyển đến đầu trang và đặt con trỏ của bạn trên dòng đầu tiên mà các chức năng được khai báo và nhấn X trên bàn phím của bạn. Điều này sẽ mở cửa sổ xref, về cơ bản, ở khắp mọi nơi nơi mà chức năng được gọi là. Bạn cần phải có chỉ có 1 cuộc gọi cho điều đó. Đơn giản chỉ cần chọn nó và nhấn enter. Bạn nên tìm thấy chính mình trong một chức năng có nhiều, rất nhiều trường hợp. Nếu vậy, chúc mừng, bạn đã tìm thấy một bộ xử lý chính, CWvsContext__OnPacket. CField__OnPacket có thể chờ đợi để bây giờ, bạn sẽ là tốt hơn đặt tên một vài chức năng quan trọng đầu tiên, các bộ giải mã.Nếu bạn có một cơ bản sự hiểu biết cho đến nay, sau đó bạn không nên có vấn đề về việc tìm kiếm một số bộ giải mã. Trước khi tiếp tục và đọc, cố gắng để tìm thấy chúng bằng cách đi vào CWvsContext__OnPacket trong v95 của bạn cửa sổ ida.OK, đã cố gắng? Có? Không thể tìm thấy chúng? Đi vào chức năng đầu tiên đối với trường hợp opcode đầu tiên ở CWvsContext, nhưng đầu tiên, nhấp chuột phải vào một trong các trường hợp và chọn hệ thập lục phân nếu giá trị opcode của bạn trong mã nguồn của bạn đang ở trong hex. Khác, Giữ số thập phân. Còn trước khi đi vào chức năng đó, hãy thử đặt tên một vài chức năng sau khi các trường hợp bằng cách tham khảo mã của bạn. (Tất nhiên, có một danh sách Cập Nhật của mã từ phiên bản ngay trước khi một trong những bạn đang phân tích atm là khá hữu ích...) Bạn có thể hoặc mất tên bạn có thể nhận được từ sự rò rỉ v95, về cơ bản các tên nexon sử dụng nhưng tôi thường chỉ cần gọi chức năng bởi opcode tên của họ trong như trong mã nguồn của tôi kể từ khi tôi không thể sử dụng để tên của nexon để được trung thực.Sau khi bạn đã đặt tên một vài, kiểm tra các thông số cho INVENTORY_OPERATION và nếu bạn nhìn một cách cẩn thận, bạn sẽ nhận thấy rằng a3 là đối tượng thực tế gói tin để giải mã. Bạn có thể đi trước và đổi tên nó một cái gì đó như GÓI hoặc một cái gì đó nếu bạn muốn. Hãy nhớ rằng nó là tham số thứ hai. Đi bên trong chức năng của INVENTORY_OPERATION và trong khi đang ở trên đầu, đổi tên tham số thứ hai để một cái gì đó giống như GÓI một lần nữa. Di chuyển xuống, về cơ bản bất cứ nơi nào bạn thấy các gói dữ LIỆU được gọi là nhiều khả năng là một bộ giải mã. Sử dụng pdb v95 của bạn để hỗ trợ bạn. Chỉ từ INVENTORY_OPERATION, bạn có thể nhận được CInPacket::Decode1 và CInPacket::Decode2, mà về cơ bản giải mã một byte và một đoạn ngắn. Có những người khác quá: CInPa
đang được dịch, vui lòng đợi..
