Author Topic: Beginner's guide to memory reading/writing  (Read 2657 times)

0 Members and 1 Guest are viewing this topic.

Offline ZigZagZebraTopic starter

  • Jr. Member
  • **
  • Posts: 51
  • Activity:
    0%
  • Reputation Power: 1
  • ZigZagZebra has no influence.
  • Gender: Male
  • Respect: +12
  • Referrals: 0
    • View Profile
Beginner's guide to memory reading/writing
« on: February 08, 2015, 07:11:59 PM »
0
So I wanted to post a few good resources I'd stumbled upon as of late, because I've been a long time EUO user and have always held Cheffe to be a sort of wizard of Oz for the UO scripter community. For those interested, like myself, in how a program like this works, here are a few articles on manipulating programs through editing memory.

Though I believe EUO is written in delphi, I'm a .NET guy myself, so I figure I'd offer C# resources.

Without further adieu...

http://www.codeproject.com/Articles/15680/How-to-write-a-Memory-Scanner-using-C
http://www.codeproject.com/Articles/670373/Csharp-Read-Write-another-Process-Memory

Here's an example of this with minesweeper:
http://www.codeproject.com/Articles/3501/Minesweeper-Behind-the-scenes



Offline luamage

  • Newbie
  • *
  • Posts: 3
  • Activity:
    0%
  • Reputation Power: 1
  • luamage has no influence.
  • Respect: +1
  • Referrals: 0
    • View Profile
Re: Beginner's guide to memory reading/writing
« Reply #1 on: February 09, 2015, 02:37:28 AM »
0
Indeed, using C# to invoke low level win32 APIs has it benefits. If you want to save yourself the pain of assembling all this method stubs and data structures, you should have a look at http://www.pinvoke.net/ as well :)

Offline Crome969

  • RebirthUO - Developer
  • Elite
  • *
  • *
  • Posts: 2083
  • Activity:
    0%
  • Reputation Power: 24
  • Crome969 might someday be someone...Crome969 might someday be someone...Crome969 might someday be someone...Crome969 might someday be someone...
  • Gender: Male
  • StealthUO - Developer
  • Respect: +209
  • Referrals: 9
    • View Profile
    • RebirthUO - UO Freeshard
Re: Beginner's guide to memory reading/writing
« Reply #2 on: February 09, 2015, 05:56:00 AM »
0
Itīs not so easy as it looks. Even if you understand how to manipulate memory, you first need to know how Cheffe obtains itīs values. We talk about baseadresses, offsets, functional injections (Event Macro) and all this kind. Also a way to store the handling of those values.I personal would store those values in xml, allowing non code viewers to add their own offsets if they are interested in, making it easyer to share the values instead of offer source..
Then you need to write a working ScriptInterface and a fast translation of syntax to your code. Maybe also threads if you want to attach multiple Clients.

You may should look at UOMaschine because Events are clientsided hooked. So atleast those stuff is already covered by uomachine.

Tools like easyuo\openuo and stealth werent just "build" within a few days, it tooked the teams a few years...

Offline ZigZagZebraTopic starter

  • Jr. Member
  • **
  • Posts: 51
  • Activity:
    0%
  • Reputation Power: 1
  • ZigZagZebra has no influence.
  • Gender: Male
  • Respect: +12
  • Referrals: 0
    • View Profile
Re: Beginner's guide to memory reading/writing
« Reply #3 on: February 09, 2015, 02:32:38 PM »
0
I was hoping you'd chime into this thread Crome!

Thanks for the suggestions and link to the git repository for UOMachine. I'll add that in to my list of applications to explore.

Very cool idea about using markup to share the information. At a higher level, I consider that akin to providing tables on EUO item ids for reference. Still challenges others interested in playing with the low-level details and builds a community around development.

and Lua, its funny you mention pinvoke, I just dug that site up this week and have it bookmarked at work. Right now I'm trying to develop a windows service by group policy that closes a particular application after x amount of time the application is idle. I'm just over a quarter century old, so a lot of learning for me to do, but I like to think what I lack in experience I possess in fervor!

Any good resources for writing custom libraries for applications? That's an interest of mine also.


Offline Crome969

  • RebirthUO - Developer
  • Elite
  • *
  • *
  • Posts: 2083
  • Activity:
    0%
  • Reputation Power: 24
  • Crome969 might someday be someone...Crome969 might someday be someone...Crome969 might someday be someone...Crome969 might someday be someone...
  • Gender: Male
  • StealthUO - Developer
  • Respect: +209
  • Referrals: 9
    • View Profile
    • RebirthUO - UO Freeshard
Re: Beginner's guide to memory reading/writing
« Reply #4 on: February 10, 2015, 06:09:05 AM »
0
I was hoping you'd chime into this thread Crome!

Itīs not like you are the first person who tried to work on an selfmaded tool to replace easyuo. Due the years me and some friends checked dozen of working tools, disambled the client.exe and looked into it and other stuff (razor, krrios whatever). I finally found my way with stealth, but it doesnt mean i wouldnt check out other products as well.
Thanks for the suggestions and link to the git repository for UOMachine. I'll add that in to my list of applications to explore.

UOM was the only product providing true sources.. All other tools either require dissambling or some quirky languange knowlegdes..

Very cool idea about using markup to share the information. At a higher level, I consider that akin to providing tables on EUO item ids for reference. Still challenges others interested in playing with the low-level details and builds a community around development.

I know this a bit from the D3 botting scene. Those Informations got highly paid because most authors of a bot had no clue how to find offsets and such values. So there was a heavy moneyflow to people who did the data crawling for those authors.Once the Informations got public released the price dropped, i saw a few people who liked to release the offset data to strike out the money flow for others..

and Lua, its funny you mention pinvoke, I just dug that site up this week and have it bookmarked at work. Right now I'm trying to develop a windows service by group policy that closes a particular application after x amount of time the application is idle.
Pinvoke can be indeed interesting, but i miss some more samples on specific stuff. The way it works its like a small wiki but with less working samples.

I'm just over a quarter century old, so a lot of learning for me to do, but I like to think what I lack in experience I possess in fervor!
Iīm 27 and i know a few people who are much younger then me and gained high experience in development..Donīt be harsh on yourself.


Any good resources for writing custom libraries for applications? That's an interest of mine also.
I think there are dozens of Books for design patterns of libraries. The way to go also depend on your destination and your components and their relations.

PS: Maybe it would be easyier to make the source of uom to a library you can use and make an ui wich understand easyuo.
« Last Edit: February 10, 2015, 06:13:18 AM by Crome969 »