2013-07-07 31 views
16

Cheat Engine đi kèm với một tính năng gọi là tốc độ hack mà về cơ bản có thể làm chậm hoặc tăng tốc độ của trò chơi. Trên thực tế, không chỉ trò chơi, nếu có một phần mềm với đồng hồ ticking nó có thể tăng tốc độ lên đó quá. Nó hoạt động như thế nào? Tôi có thể tưởng tượng có một số đồng hồ bên trong mà những điều này chạy nhưng không chắc chắn làm thế nào những điều này xảy ra ở mức độ thấp.Hack tốc độ của CheatEngine hoạt động như thế nào?

Trong khi tính năng này đã hoạt động trên hầu hết các trò chơi tôi đã thử, nó cũng đã thất bại trên nhiều, ví dụ như, NFS Most wanted. Tại sao? Có cơ chế nào khác nhau mà các trò chơi này chạy hay chỉ là một số trò lừa đảo?

Trả lời

11

Engines Cheat Speedhack:

  • Chạy các ứng dụng trong một chủ đề ưu tiên rất cao
  • Sử dụng ngủ đúng lúc để tăng tốc độ trò chơi
  • Khi một hàm được gọi, nó sẽ được đưa ra bộ hẹn giờ mô phỏng được tăng tốc

Cheat Engines Mới Speedhack:

  • Khi Cheat tốc độ động cơ dll được tiêm vào chương trình, nó được sửa đổi với tốc độ bạn chọn trong bảng điều khiển Cheat Engine
  • Thiết lập một tham chiếu cơ sở của thời điểm hiện tại
  • trở time = basetime + ((currenttime-basetime) * tốc độ

Detection:

  • Cả hai phương pháp dễ dàng để phát hiện bằng cách gửi một packe t với thời gian mỗi vài giây để được xác nhận bởi một máy chủ
  • Các trò chơi có thể phát hiện các dll được tiêm

Nguồn: http://wiki.cheatengine.org/index.php?title=Cheat_Engine:Internals#Speedhack

4

Tôi nghĩ lý do tại sao nó không hoạt động trong một số ứng dụng (chủ yếu là trò chơi) là một số trò chơi liên kết đồng hồ trong trò chơi với khung hình trên giây. Vì vậy, trò chơi của bạn sẽ bị chậm lại hoặc gặp sự cố nếu bạn cố gắng tăng tốc.

Nguồn:http://hackerbot.net/tutorials/353-speed-up-hack-slow-down-cheat

Cá nhân tôi đã chỉ gặp rất ít trò chơi mà wouldnt phản ứng với speedhack. Ngay cả khi họ đang gắn liền với FPS, bạn vẫn có thể tăng tốc độ nó đến một mức độ nào đó.

6

Ba năm sau, tôi nghĩ mình biết đủ để trả lời câu hỏi của riêng mình. :)

Chương trình máy tính thường liên lạc với hạt nhân bằng các hàm được xác định trước được gọi là cuộc gọi hệ thống. Mỗi hệ điều hành có một bộ các cuộc gọi khác nhau nhưng thường thì chúng thực hiện những việc tương tự như - cấp phát bộ nhớ, đọc và ghi các tệp hoặc xử lý các quy trình. Theo số this page, có khoảng 480 cuộc gọi hệ thống trong hạt nhân Windows NT.

Đối với bất kỳ mục đích nào liên quan đến phần cứng, chương trình thường sử dụng các cuộc gọi hệ thống vì đó là hệ điều hành tốt nhất và một trong những điều này xảy ra là biết thời gian. Các trò chơi trên máy tính thường cần hiển thị 60 khung hình/giây và để thực hiện điều này, chúng cần gọi hàm render mỗi 16.6ms. Trên Windows, "GetTickCount()" thường được sử dụng cho điều này trả về số mili giây đã trôi qua kể từ khi Windows được bật lên ("Nếu không có mili giây trôi qua kể từ khi số lần đánh dấu cuối cùng lớn hơn 16ms, hãy tiếp tục tạo khung mới.").

SpeedHacking, nói chung, hoạt động bằng cách tiêm mã vào quá trình đang chạy và hack các chức năng định thời gian để trả về các "bọ ve" tăng tốc/chậm lại để sửa đổi tốc độ chạy của chương trình.

Mặc dù, tôi không thể chắc chắn cách chính xác CE đạt được điều này (mã nguồn là khá khó hiểu) nhưng một lập trình viên khác đã rút ra một điều tương tự (video) trên Linux. Trong source code, bạn có thể xem cách tác giả sửa đổi một lời gọi hệ thống tương tự cho Linux ("gettimeofday()") cho việc này.

go gettimeofday_orig; 

int val; 
gettimeofday_orig=(go)dlsym(RTLD_NEXT,"gettimeofday"); 

if (!timezero) 
{ 
    timezero = new timeval; 
    val = gettimeofday_orig(timezero,tz); 
    (*tv) = (*timezero); 
    return val; 
} 

Tôi không chắc chắn cách nó được phát hiện nhưng tôi sẽ làm theo ý tưởng của @ Harold rằng trò chơi có thể phát hiện thấy DLL bị tiêm.

+2

Thuật ngữ nitpick: Trông giống như một móc của trình bao bọc libc cho 'gettimeofday()', không xây dựng hạt nhân riêng với hàm 'sys_gettimeofday()' đã sửa đổi. Vì vậy, bạn có thể nói rằng họ nối chức năng wrapper gettimeofday để chặn các cuộc gọi hệ thống và sửa đổi giá trị trả lại. –

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