Thảo luận về lập trình vượt GameGuard cho Auto buff

Thảo luận trong 'Cửu Long Tranh Bá - 9 Dragons' bắt đầu bởi gevf, 21/10/06.

  1. gevf

    gevf Youtube Master Race

    Tham gia ngày:
    14/6/03
    Bài viết:
    97
    Nơi ở:
    HN
    Có người nói rằng GG đã sửa bảng NAT để lái các hàm send key về các hàm khác, kết quả không cho send key nữa. Để khắc phục hiện tượng này thì ta cần lưu giữ lại địa chỉ gốc của các hàm send key (của user32.dll) rồi đem ra sử dụng sau khi GG đã thay đổi chúng.

    Tôi đã làm theo hướng đó, nhưng không thành công. Khi gọi địa chỉ gốc của hàm keybd_event thì chỉ tạo được sự kiện cho các ứng dụng khác, còn đối với 9Dragons thì không có tác dụng. Mặc dù trước khi có GG (Close beta) thì AutoIt với các hàm send key vẫn gửi sự kiện thành công.

    Chuyển sang cách khác mạnh hơn. Vì GG tác động vào nhân, tôi cũng áp dụng vào nhân hệ thống. Sử dụng Windows Driver Development Kit (WDK), tôi bắt đầu làm việc chưa bao giờ làm là viết trình điều khiển thiết bị cho hệ thống. Đọc tài liệu thì thấy trình điều khiển là nơi giao tiếp giữa bàn phím và hệ điều hành, đồng thời ta có thể giả lập các sự kiện bàn phím qua driver.

    Để nghiên cứu lập trình driver (DDK), khác với lập trình phần mềm (SDK), vì thao tác với nhân hệ thống nên việc gỡ rối đòi hỏi phải chạy trên một máy tính, lập trình và gỡ rối trên một máy khác. Như vậy phải có 2 máy tính. Chúng được nối với nhau qua cáp nối tiếp (null modem COM), hoặc cáp USB hoặc IE1394. Tôi chọn cáp nối tiếp vì dễ kiếm nhất.

    Còn tiếp.
     
  2. gevf

    gevf Youtube Master Race

    Tham gia ngày:
    14/6/03
    Bài viết:
    97
    Nơi ở:
    HN
    Để mua cáp nối tiếp tôi đã đi tìm ở các cửa hàng tin học nhưng không có bán. Cuối cùng tôi đã tìm được ở một cửa hàng linh kiện điện tử chứ ko phải tin học. Thuật ngữ điện tử là "RS232 9 chân hai đầu cái (female)".

    Phần cài đặt cũng có vấn đề nếu như chúng ta không biết cách cài đặt thì hệ thống sẽ không chấp nhận một driver mới. Tôi chỉ làm cho Windows XP.

    Sau khi thực hiện một số thao tác chèn ký tự vào bộ nhớ bàn phím, dịch driver, cài đặt, chạy thử trên notepad và cuối cùng là chạy trên CLTB bản của Vinagame, thì các phím hoạt động tốt. Như vậy kết luận một trong những phương pháp vượt qua GG chính là tác động lên nhân hệ điều hành, coi bộ gửi phím của mình chính là một thành phần lõi của hệ điều hành.

    Vấn đề cuối cùng là cho phép driver tự hoạt động theo chu kỳ và có tác động của người sử dụng. Nếu lập trình phần mềm thì rất đơn giản, còn lập trình điều khiển driver thì bị hạn chế nên rất khó. Tự hoạt động theo chu kỳ ta có thể dùng multithread, nhưng tác động của người sử dụng thì hơi khó đối với driver bàn phím.
     
  3. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    cao thủ quá. Nếu chơi nhiều nên nghỉ ngơi 1 tí cho thư giãn đầu óc..
     
  4. SlimMarshall

    SlimMarshall Mayor of SimCity

    Tham gia ngày:
    19/8/05
    Bài viết:
    4,034
    Nơi ở:
    Nowhere City
    chà bác suy luận xong chưa..tui hông phải dân chuyên Prog,bác nói làm tôi nhức cái đầu ^^ ..vô vấn đề chính đi..code sao đây T_T ..viết tới đó tồi thôi hả,sao hông có chữ "còn tiếp" vậy...buồn
     
  5. gevf

    gevf Youtube Master Race

    Tham gia ngày:
    14/6/03
    Bài viết:
    97
    Nơi ở:
    HN
    Vậy bác muốn gì?
    - Viết tiếp đoạn nhức đầu trên
    - Ko chuyên lập trình nhưng vẫn muốn code (viết macro...)
    - Dùng thử sản phẩm
     
  6. Thachsanh

    Thachsanh Dragon Quest

    Tham gia ngày:
    27/6/03
    Bài viết:
    1,436
    Đọc đến đây tôi thắc mắc, việc hoạt động theo chu kỳ có liên quan gì đến multithread đâu? Vấn đề là nếu bạn chạy ở user space thì có các hàm có sẵn do OS đã tạo ra giúp bạn chạy theo chu kỳ, còn ở kernel level bạn không có những cái này. Tôi chưa thấy cái device driver nào chạy multithread cả.
     
  7. greenhope

    greenhope The Warrior of Light

    Tham gia ngày:
    6/8/03
    Bài viết:
    2,344
    Có thử nghiên cứu về GameGuard và các chương trình macro, thấy hình như có 5 ct có liên quan keyboard và macro có thể tác động vào game ngay cả khi GameGuard, vấn đề là tại sao 5 ct này lại send đc key vào game trong khi các ct khác thì ko ? Giống như việc Vietkey có thể gõ trong CLTB còn Unikey thì không mặc dù cả 2 đều chặn hook để thêm dấu tiếng Việt, phải chăng GG cho phép Vietkey hoạt động còn Unikey thì không ? Vậy có thể viết 1 ct fake ID/function là Vietkey ko ?

    Thứ hai là việc GameGuard giống như 1 rootkit khi chạy game sẽ lập tức hide proccess lại thông qua 1 device driver riêng, bên Mapple Story để các cheat engine hoạt động được người ta tạo 1 dll inject vào bộ nhớ ngăn GG thay đổi các địa chỉ bộ nhớ cũ, vậy sau đó có thể dùng 1 rootkit tool để hide 1 số macro program như AutoIt để tránh bị GameGuard phát hiện ko ?

    Nói chung còn nhiều cách để vượt qua GameGuard này lắm và bản thân đội ngũ GM của Vinagame thậm chí còn ko hiểu GameGuard là cái gì khi còn cho phép người chơi sử dụng device riêng để tự động gõ phím trong khi mục tiêu của GameGuard là chặn tất cả những ct tự động gõ phím thông qua những hàm của Windows...
     
  8. Thachsanh

    Thachsanh Dragon Quest

    Tham gia ngày:
    27/6/03
    Bài viết:
    1,436
    GameGuard là hoàn toàn software, nếu như người ta dùng hardware macro từ phía ngoài, programmable chip để làm macro thì chịu thôi chứ làm sao mà chặn được? :D

    Lúc đấy người chơi có can thiệp tí nào vào software đâu, thậm chí cũng chẳng chạy chương trình 3rd party nào. Còn chuyện người ta làm gì với cái computer của người ta, gắn cái cheat keyboard vào thì làm sao cấm được, máy tính của người ta mà, cùng lắm là trong game GM nếu như phát hiện được luyện skill AFK thì send PM hỏi han một số câu hỏi nhất định gì đấy, nếu không thấy trả lời lại thì kick ra và ban 24 tiếng chẳng hạn.
     
  9. MYHAUVUONG

    MYHAUVUONG Donkey Kong

    Tham gia ngày:
    22/9/05
    Bài viết:
    431
    Nơi ở:
    Ngũ Đài Sơn
    Cái này tôi ko đồng ý với bác TS, nghe nó chuối vãi. Tại sao tôi lại phải trả lời, kể cả khi tôi đang có mặt ở đó???Ừ nếu bác nói rằng admin có toàn quyền bắt buộc gamer phải trả lời, ko trả lời thì bị block, tôi sẽ nói đến khía cạnh khác. Tôi chơi nuker chẳng hạn, nội lực của tôi nếu có buff, điểm huyệt cũng ~ 4000, khi tắt tất cả Nội Công, Bộ pháp (10 thành hết rồi) rồi lấy tờ giấy gấp lại chèn vào phím số 7 chẳng hạn, để thi triển liên tục một chiêu hỗ trợ chỉ tốn 2 nội lực một lần, vậy là tôi có thể thi triển chiêu đấy tầm 2000 lần. Tất tần tật việc thi triển mất tầm 2s đi nghĩ là khoảng 4000 s sau tôi mới phải quay lại char của tôi, 4000s ~ 1h10 phút đấy, trong thời gian đấy bác admin đi qua hỏi: ê mày làm gì thế ??? trả lời 777777777777777777 thế là bị block à??? :D
     
  10. troctroc

    troctroc Mr & Ms Pac-Man Lão Làng GVN

    Tham gia ngày:
    29/12/04
    Bài viết:
    108
    việc sửa code unikey tui đã thử rồi, nhưng chỉ có tác dụng trong bảng chat, cái đó tui cũn không hiểu tại sao.
    Thứ hai, viết một driver để bypass, cũng gần như việc viết một rootkit rồi, bên CE tụi nó tạo UCE cũng chỉ là sửa lại tên các hàm và tên driver thui, kô biết có thể xài được driver của tụi nó không nữa, đang nghiên cứu
    Thứ ba, tui kô hiểu lắm, bên bọn CE hình như là nó kô có xài API phải kô, kô rành về Delphi nên làm biếng đọc code quá.
    Bác GH có file inject.dll nào kô, shared với. Để coi có thể chặn được memory để xài hàm sendkey.
     
  11. Thachsanh

    Thachsanh Dragon Quest

    Tham gia ngày:
    27/6/03
    Bài viết:
    1,436
    Bạn không hiểu, GM phải invisible quan sát thật lâu, sau khi tin chắc là người này hoàn toàn AFK luyện công thì mới bắt đầu hỏi, và cũng đâu phải trả lời 7777 là bị block ngay đâu, ví dụ GM hỏi han bạn gì đó, và cho thời gian bạn trả lời, giả sử sau khi đã hỏi nhiều lần mà thấy bạn luyện hết skill này đến skill khác rồi chuyển quả điều tức phục hồi công lực rồi lại luyện tiếp mà không trả lời gì cả thì có thể kết luận được rồi.
    Có rất nhiều game sử dụng cách này, Final Fantasy XI chẳng hạn, GM send PM hỏi han, thậm chí có thểm di chuyển bạn random 1 chút xem bạn có phản ứng gì không, chứ đâu phải xông vào là block ngay đâu
     
  12. JFK

    JFK Mr & Ms Pac-Man

    Tham gia ngày:
    10/10/06
    Bài viết:
    150
    Tôi hỏi bác TS một câu nhé: nếu tôi thuê một người luyện skill, vì tôi muốn chart đó đại diện cho tôi ở trong game cũng như ngoài đời, do đó tôi có yêu cầu người train thuê rằng không được chat với ai trong game (cũng có nghĩa không được trả lời với bất cứ ai trên bảng chat game), thì làm sao GM biết chart của tôi luyên skill AFK hay dùng hardware để luyện skill?
     
  13. SlimMarshall

    SlimMarshall Mayor of SimCity

    Tham gia ngày:
    19/8/05
    Bài viết:
    4,034
    Nơi ở:
    Nowhere City
    có nhiều cách để GM check AFK lắm àh..chat với bạn bạn hông trả lời là đương nhiên..việc quái gì tôi phải trả lời..trừ khi cho tôi linh dược cấp 3 :))
    trong game Hero có cách để motivate gamer hay lắm thí dụ lâu lâu hỏi cho vài câu,trả lời đúng nó thưởng tùm lum,cũng vui..
    Còn cách GM check thì nhiều,nó move qua chỗ mob tè le..coi có phản ứng chạy trốn hay sao hông chẳng hạn,hay move qua chỗ có thể pk,visible làm người thường đâm cho vài nhát,coi bạn có phản ứng hông..nếu là người thường sẽ phản ứng ngay..nếu sau khi chết mà phản ứng thì họ sẽ sorry và tặng bạn cái gì đó chẳng hạn,buff full chẳng hạn :)) thế thôi..nhiều cách để check mà
     
  14. gevf

    gevf Youtube Master Race

    Tham gia ngày:
    14/6/03
    Bài viết:
    97
    Nơi ở:
    HN
    Tớ cũng muốn nhảy vào bàn luận thêm chút về GM nhưng sợ ko phù hợp với chủ đề này, chỉ có ý kiến riêng rằng theo nhận định riêng thì ở CLTB, GM chắc chắn sẽ cho phép việc luyện hỏa hầu bằng công cụ hỗ trợ 123123... mong các bác sẽ bàn luận kỹ hơn ở chủ đề được sticky kia kìa...


    Uh` đúng vậy, ở user space rất thoải mái nhưng tiếc rằng đến nay tớ chưa thực hiện được việc gửi thông điệp IOCTRL từ ứng dụng vào driver bàn phím, do đó mọi hoạt động từ bên ngoài tác động vào driver vẫn bị hạn chế. Đã post bài hỏi các usergroup của MS... nhưng chưa thấy trả lời gì. Tớ đã tìm ra 1 cách đó là đặt cấu hình tĩnh vào registry hoặc file, rồi tạo phím nóng để cảnh báo cho driver.

    Vì vậy driver phải "tự thân vận động" bằng một thread của nó. Trong DDK có hàm hỗ trợ multithread mà, tuy đồng bộ hơi khó nhưng có còn hơn ko.


    Unikey phiên bản 3.6 vẫn hoạt động bình thường với CLTB, gõ tiếng Việt theo mã Local CP 1258 của MS mà ko bị chặn gì cả. Unikey hook 2 hàm Keyboard và Mouse.


    Tôi cũng đã sửa unikey để xem GG chặn gì và ko chặn gì, đúng là chỉ có tác dụng ở bảng chat, keybd_event ko tác dụng mà Unikey sử dụng PostMessage với hwnd = GetFocus(). Cái handle này có thể lấy trực tiếp từ cửa sổ CLTB. Nhưng khi hết chat thì ko tác dụng được. Một điều khó hiểu là AutoIt trong Close Beta ko có GG thì hoạt động tốt với CLTB.
     
  15. gevf

    gevf Youtube Master Race

    Tham gia ngày:
    14/6/03
    Bài viết:
    97
    Nơi ở:
    HN
    Việc thay đổi bảng NAT cũng không có tác dụng, theo kỹ thuật API hooking thì trước khi chạy GG, chúng ta sẽ lưu lại địa chỉ của các hàm send key như keybd_event của user32.dll, sau khi chạy GG thì gọi lại hàm đó theo địa chỉ cũ đã lưu. Thế nhưng các hàm đã được gọi chỉ xuất phím ra các ứng dụng khác, còn đối với CLTB vẫn không có tác dụng.
     
  16. SlimMarshall

    SlimMarshall Mayor of SimCity

    Tham gia ngày:
    19/8/05
    Bài viết:
    4,034
    Nơi ở:
    Nowhere City
    trời..CB hông có GG thì đương nhiên Auto tốt rồi..có gì lạ đâu..có bị bị chặn đó chứ..hình như soft AutoHotKey qua GG được thì phải..khổ nổi hông biết code macro T_T..bác nào thử thử xem
     
  17. greenhope

    greenhope The Warrior of Light

    Tham gia ngày:
    6/8/03
    Bài viết:
    2,344
    Nghe đồn các cao thủ CLTB đã bypass GameGuard đơn giản bằng cách đánh lừa GameGuard là ct Auto key của mình là unikey = cách tích hợp bộ gõ unikey vào ct auto để send key qua CLTB (source của Unikey có sẵn trên net)...

    Hiện thời CLTB chưa có bot, chỉ có auto tự luyện skill mà giờ mọi người xài auto luyện skill = hardware lẫn software rồi kêu mình muốn làm gì kệ mình, AFK luyện skill là hợp pháp thì thử hỏi VNG mua cái GameGuard về làm cái gì cho mệt... Cứ gỡ cha cái GameGuard ra vừa load game nhanh lại khỏi check nhì nhằng mệt xác, chấp nhận "thực tế" như bên VLTK ấy...
     
  18. SlimMarshall

    SlimMarshall Mayor of SimCity

    Tham gia ngày:
    19/8/05
    Bài viết:
    4,034
    Nơi ở:
    Nowhere City
    ừ đúng đó..thiệt ra trò này đâu có auto lv được..gỡ cái GG cho auto skill đi cho rồi..đỡ phức tạp
     
  19. elfvodich

    elfvodich Mario & Luigi

    Tham gia ngày:
    27/2/04
    Bài viết:
    777
    Không có gg là tui hack speed àh =)). Nuker vô địch ^^
     
  20. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Đấy, phân tích như thế mới là phân tich, ai cũng hiểu :;) Chứ đừng lấy dao mổ bò đi cắt tiết gà.

    Bypass GG để vận dụng hack tool thì khó, chứ chỉ để lập macro botting thì không đáng để bàn.
     

Chia sẻ trang này