Comments

[b][red]This message was edited by zibadian at 2007-4-7 3:51:34[/red][/b][hr]: [b][red]This message was edited by porodoro at 2007-4-7 3:16:41[/red][/b][hr]: Hi all , i've two questions to ask.: : If you think that you can help me a little , please do it!: : : 1) How can i edit specific memory address of an application?: Are there any good examples out there?: You can easily edit addresses by converting them to integers:[code]var P: pointer;begin P := Self; P := Pointer(integer(P)+4); // points 4 byte further than start of form Move(#255, P^, 1); // Fill all bits of that location (possibly corrupting the form)end;[/code]

: 2) I was thinking to create a simple (very simple) Gameboy color(is there anything else easier to code?) emulator.: Delphi can handle it? Or should i go with c++ ?: Delphi is a turing complete language (http://en.wikipedia.org/wiki/Turing_completeness), which means you can write any program in Delphi.

: And where can i find some good tutorials ?: www.google.com lists a lot of tutorials, both good and bad.

[b][red]This message was edited by porodoro at 2007-4-7 5:37:19[/red][/b][hr]: [b][red]This message was edited by zibadian at 2007-4-7 3:51:34[/red][/b][hr]: : [b][red]This message was edited by porodoro at 2007-4-7 3:16:41[/red][/b][hr]: : Hi all , i've two questions to ask.: : : : If you think that you can help me a little , please do it!: : : : : : 1) How can i edit specific memory address of an application?: : Are there any good examples out there?: : : You can easily edit addresses by converting them to integers:: [code]: var: P: pointer;: begin: P := Self;: P := Pointer(integer(P)+4); // points 4 byte further than start of form: Move(#255, P^, 1); // Fill all bits of that location (possibly corrupting the form): end;: [/code]: : : 2) I was thinking to create a simple (very simple) Gameboy color(is there anything else easier to code?) emulator.: : Delphi can handle it? Or should i go with c++ ?: : : Delphi is a turing complete language (http://en.wikipedia.org/wiki/Turing_completeness), which means you can write any program in Delphi. : : : And where can i find some good tutorials ?: : : www.google.com lists a lot of tutorials, both good and bad.: : : Thanks.: : : : : :

Allright.But i was thinking about editing another application.Is there anything special that i have to do?Or all i need is the memory address?(i havent done such a thing before)

: [b][red]This message was edited by porodoro at 2007-4-7 5:37:19[/red][/b][hr]: : [b][red]This message was edited by zibadian at 2007-4-7 3:51:34[/red][/b][hr]: : : [b][red]This message was edited by porodoro at 2007-4-7 3:16:41[/red][/b][hr]: : : Hi all , i've two questions to ask.: : : : : : If you think that you can help me a little , please do it!: : : : : : : : : 1) How can i edit specific memory address of an application?: : : Are there any good examples out there?: : : : : You can easily edit addresses by converting them to integers:: : [code]: : var: : P: pointer;: : begin: : P := Self;: : P := Pointer(integer(P)+4); // points 4 byte further than start of form: : Move(#255, P^, 1); // Fill all bits of that location (possibly corrupting the form): : end;: : [/code]: : : : : 2) I was thinking to create a simple (very simple) Gameboy color(is there anything else easier to code?) emulator.: : : Delphi can handle it? Or should i go with c++ ?: : : : : Delphi is a turing complete language (http://en.wikipedia.org/wiki/Turing_completeness), which means you can write any program in Delphi. : : : : : And where can i find some good tutorials ?: : : : : www.google.com lists a lot of tutorials, both good and bad.: : : : : Thanks.: : : : : : : : : : : Allright.: But i was thinking about editing another application.Is there anything special that i have to do?: Or all i need is the memory address?(i havent done such a thing before): : : If you want to change some constants in the application, you first need to locate them in the application file. Then you can perform a simple file copy and change the bytes containing the constant you want to change. This only works if the constant is of equal length. For example: Take a "hello world" program. If you want to have it say "hello spain" instead, you can located the word "world" in the application. Then you can copy the file upto that location, then write "spain", while reading "world" and finally continue copying.If you want to change an algorithm in the application I would suggest that you first disassemble the application, then make the necessary modifications using assembly and finally reassemble it.