Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Xử lý và tương tác process và address, offset trên C#?

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Question Xử lý và tương tác process và address, offset trên C#?

    mình cũng muốn làm 1 chương trình dạng dạng như trainer của game.



    Mình muốn hỏi là làm sao để xử lí các address , offset ?
    ví dụ mình chơi game pikachu có address của score là 01AFAC10
    Cho mình xin code để cho giá trị khác và addr đó hoặc đóng băng nó ? (nếu ko có code C# thì cho mình xin code C++)

    Nhân tiện mình cũng muốn hỏi luôn 1 điều . Đó là kí tự x trong offset. Mình thấy các offset mình thấy (với winhex )đều có dạng ví dụ 00362150 . Nhưng nhiều chỗ (các diễn đàn ) mình lại thấy nói đến offset có dạng 0x4... (ví dụ 0x0a0b0c) Bạn có thể chỉ cho mình chỗ này được ko? Và làm sao mình chuyển qua lại giữa 2 dạng này ?


    <><><><><><><><><><><><><><><><><>
    noob mà nếu có gì ko phải xin được bỏ qua cho
    Cám ơn bạn

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    HCM
    Bài viết
    365

    tìm hiểu thêm ReadProcessMemory và WriteProcessMemory API
    0x là ký hiệu cho hệ số hex thập lục, basic như vậy bạn cũng chưa nắm rõ thì e à chưa thể đụng ngay project này được đâu, cần nắm vững cơ bản trước đi

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Trích dẫn Nguyên bản được gửi bởi phamtiensinh Xem bài viết
    tìm hiểu thêm ReadProcessMemory và WriteProcessMemory API
    0x là ký hiệu cho hệ số hex thập lục, basic như vậy bạn cũng chưa nắm rõ thì e à chưa thể đụng ngay project này được đâu, cần nắm vững cơ bản trước đi
    yes sir vâng thưa anh.

    thật ra e vừa Thi xong Tin a1 pascal giờ đang chuẩn bị sang môn C. Đây là những uất hận từ lâu bùng cháy làm em lúc nào cũng thắc mắc liệu sau này mình có bít được ko nên em mới mạo muội post bài hỏi thôi

    Cám ơn a nhìu giờ thì thấy chút ánh sáng rồi ! Lập trình thật là cool !

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    21

    Mình có viết chơi 1 cái thế này (cho vui ý mà )
    Nếu bạn cần tham khảo thì cứ nói để mình up lên.
    Có điều cái địa chỉ ko hiểu thế nào mà mỗi máy giá trị lưu trong đấy lại khác nhau, dù đã tính từ địa chỉ của chương trình đó lúc chạy trong bộ nhớ )

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    SN06 - 70 Trương Định - HBT - HN
    Bài viết
    36

    alo. đồng chí up lên đi. mình đang cần tìm hiểu. thanks


    =====================================
    XWAYSTYLE ---------> Brings joy to milions.....
    Intel(R) Pentium 4(R) 2.8GHz Main IntelD845Pemy (Socket 478) RAM 1024Mb VGAFX5200 128Mb 128Bit HDD Maxtor 160Gb PATA Sound Blaster live 5.1 Gamer

    Windows Vista Ultimate Sp1 (activated)
    Rating : 2.5 Mark
    Theme: Windows Aero (very nice!)

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    một căn hộ nhỏ trên trái đất
    Bài viết
    372

    Mặc định Xử lý và tương tác process và address, offset trên C#?

    cách nói chuyện của langman không phải kiểu thế này. Lạ thật.
    Being top programmers always requires advanced knowledge of C/C++ and assembly


  7. #7
    Ngày gia nhập
    09 2010
    Bài viết
    5

    Mặc định Xử lý và tương tác process và address, offset trên C#?

    bây giờ mình có 1 file APP (.exe)

    mình đã viết được offset của nó

    ví dụ mình chơi game pikachu có address của score là 01AFAC10

    giờ mình muốn viết 1 dll trong đó address sẽ được đưa ra để xử lý ( viết xong dll sẽ dùng OllyDbg hook vào app)


    ví dụ như ở trong C++ thì đơn giản chỉ là
    Code:
    int *score = (int*)0x01AFAC10 
    
    void cheat()
    {
    while(1)
    {
        *score++;
    Sleep(100);
    }
    }
    ở trong C# thì ta đưa ra kiểu gì ...

    ai cho em ví dụ

    Mong các bác chỉ giáo .

  8. #8
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Tìm hiểu về IntPtr
    Visual C# Code:
    1. IntPtr bufPtr = new IntPtr(0x01AFAC10);

    Muốn xử lý dữ liệu thì hãy tìm hiểu về kiểu byte và Marshal! (Đừng hỏi ví dụ nhé khi mà số lượng bài viết của bạn chỉ có ở mức ít ỏi)
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  9. #9
    Ngày gia nhập
    10 2012
    Bài viết
    51

    You need to find something in the hex that doesn't move at all, compare both save files in the hex editor(this may take a while). Once you find that and you are absolutely positive that the code you find is universal between both files, write it down. Now you can start
    building your save editor. Here is a sample of what I'm talking about......


    Imports PackageIO
    Public Class Form1
    Dim filepath As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim open As New OpenFileDialog
    open.Title = "Open An Xbox 360 Gamesave"
    open.ShowDialog()
    filepath = open.FileName
    readfile()
    End Sub
    Private Sub readfile()
    Try
    Dim reader As New PackageIO.Reader(filepath, Endian.Little)
    reader.SearchString("Universal Hex code goes here", PackageIO.Reader.StringType.Hexadecimal, 0, True)
    reader.Position -= 19
    TextBox1.Text = reader.ReadSingle
    Catch ex As Exception
    MsgBox("Error To String")
    End Try
    End Sub
    Private Sub writefile()
    Try
    Dim writer As New PackageIO.Writer(filepath, Endian.Little)
    writer.Position = filepath
    writer.WriteSingle(TextBox1.Text)
    Catch ex As Exception
    MsgBox("Done")
    End Try
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Dim writer As New PackageIO.Writer(filepath, Endian.Little)
    writer.Position = filepath
    writer.WriteSingle(TextBox1.Text)
    MsgBox("Saved Successfully")
    End Sub
    End Class


    -= 19 Means that the editor is going to count backwards 19 bytes from the very end of the dynamic offset and then write what you want modded in whatever format you tell it to. If you were to write += 19 then it would count forward 19 bytes. Simple!!

    This is a search that will be the jump point to find the offset you are reading & writting to: reader.SearchString("Universal Hex code goes here or ASCII )", PackageIO.Reader.StringType.Hexadecimal, 0, True)

Các đề tài tương tự

  1. Socket Lỗi Only one usage of each socket address (protocol/network address/port) is normally permitted
    Gửi bởi hoanghai27 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-05-2012, 02:11 AM
  2. Scan address trên bộ nhớ như thế nào?
    Gửi bởi Yan.Huynh trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 02-10-2010, 03:08 PM
  3. VC++ Lấy Địa chỉ MAC Address trên Máy tính
    Gửi bởi trần trân trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 2
    Bài viết cuối: 18-08-2010, 10:49 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn