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
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
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áylà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 !
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ớ)
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!)
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
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à
ở trong C# thì ta đưa ra kiểu gì ...Code:int *score = (int*)0x01AFAC10 void cheat() { while(1) { *score++; Sleep(100); } }
ai cho em ví dụ
Mong các bác chỉ giáo .
Tìm hiểu về IntPtr
Visual C# Code:
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)
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 đó.Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
Phone: 0972 89 7667
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 hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.
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)