Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Emulators & memory editing

porodoroporodoro Posts: 230Member
[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?

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++ ?

And where can i find some good tutorials ?

Thanks.


Comments

  • zibadianzibadian Posts: 6,349Member
    [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.
    :
    :
    :



  • porodoroporodoro Posts: 230Member
    [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)


  • zibadianzibadian Posts: 6,349Member
    : [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.
Sign In or Register to comment.