C# Redirect IP and Search Memory Adresses?

07/02/2011 09:33 vitalka#1
1
07/02/2011 12:47 chea77er#2
It's possible, you can hook winsock with .NET as well, but that's bad. But you can easily change the IP in the Media.pk2 then start the client on the normal way.

To find memory addresses you can use OllyDbg or some easier tools like T-Search or CheatEngine.

To work with these memory addresses you can use the kernel32.dll: [Only registered and activated users can see links. Click Here To Register...]
07/02/2011 14:22 vitalka#3
I want to search the memory adresses after each update WITH my C# code and not with manually with OllyDBG.

I want a program in C# who works like the edxLoader. Not only with WriteProcessMemory
07/16/2011 20:11 vitalka#4
push
07/16/2011 20:38 Schickl#5
Quote:
Originally Posted by vitalka View Post
push
bump*
07/18/2011 14:52 bootdisk#6
chea77er is right.
This thing of 'patterns'/'signatures' is commonly used to apply patches, to make your tool non-dependant of a certain version of the executable for instance.
It just searches for some code bytes that might be likely be always in the same sequence and returns the address.
From there you can do whatever you want.

If you have never tried this before, try to find the signature/pattern of 'Please, execute the Silkroad.exe' message and apply a patch to bypass it.

Once you've achieved that you will understand better the whole thing... as everything in life, it looks complicated but it's not.

don't give up! :D
07/18/2011 17:03 Oriya9#7
Quote:
Originally Posted by bootdisk View Post
If you have never tried this before, try to find the signature/pattern of 'Please, execute the Silkroad.exe' message and apply a patch to bypass it.
To bypass the launcher you don't need any memory editing, .NET has Mutex in the System.Threading namespace.

C#:
Code:
using System.Threading;
using System.Diagnostics;
Code:
string Path = "C:\\Program Files (x86)\\Mail.ru\\SilkRoad Online\\sro_client.exe";
Mutex Mutex1 = new Mutex(false, "Silkroad Online Launcher");
Mutex1.WaitOne();
Mutex Mutex2 = new Mutex(false, "Ready");
Mutex2.WaitOne();
Process p = new Process();
p.StartInfo.FileName = Path;
p.StartInfo.Arguments = " 0 /38 0 0";
p.Start();
while (p.MainWindowHandle == IntPtr.Zero)
{
    Application.DoEvents();
    Thread.Sleep(1);
}
Mutex1 = null;
Mutex2 = null;
VB.NET:
Code:
Imports System.Threading
Code:
Dim Path As String = "C:\Program Files (x86)\Mail.ru\SilkRoad Online\sro_client.exe"
Dim Mutex1 As New Mutex(False, "Silkroad Online Launcher")
Mutex1.WaitOne()
Dim Mutex2 As New Mutex(False, "Ready")
Mutex2.WaitOne()
Dim p As New Process
p.StartInfo.FileName = Path
p.StartInfo.Arguments = " 0 /38 0 0"
p.Start()
While p.MainWindowHandle = 0
    Application.DoEvents()
    Thread.Sleep(1)
End While
Mutex1 = Nothing
Mutex2 = Nothing
This is just a simple example of course.
07/18/2011 17:14 bootdisk#8
Quote:
Originally Posted by Oriya9 View Post
To bypass the launcher you don't need any memory editing, .NET has Mutex in the System.Threading namespace.
Mutexes are part of the win32 api, sure .Net will have that. [Only registered and activated users can see links. Click Here To Register...]
I prefer the patches, at some point you will need to do them, perhaps for C inlining or asm.
And he was asking about FindPattern or FindSignatures, not a launcher...
The suppress of the 'Please...' message is a good way of learning how to.
07/18/2011 17:38 lesderid#9
Quote:
Originally Posted by Oriya9 View Post
To bypass the launcher you don't need any memory editing, .NET has Mutex in the System.Threading namespace.

*Examples*
He was just trying to make a point, how signatures work.

But thanks, didn't know .Net had Mutex. ^^
07/19/2011 13:22 benco#10

Don't do :
Mutex1 = null;
Mutex2 = null;

use :
Mutex1.Close()
Mutex1.Dispose()
Mutex2.Close()
Mutex2.Dispose()
07/19/2011 14:21 Oriya9#11
Quote:
Originally Posted by benco View Post

Don't do :
Mutex1 = null;
Mutex2 = null;

use :
Mutex1.Close()
Mutex1.Dispose()
Mutex2.Close()
Mutex2.Dispose()
Mutex is not a resource, it's an API, you can't close or dispose it.
setting the variable to null will release the API command line, you don't even have to do this if the sub ends somewhere (if there's no loop or something).
07/19/2011 20:15 benco#12
Mutex is a class in .NET not an API function... if his application is open every time he should dispose the instance of this classe for multiple launching.
read msdn Mutext :
[Only registered and activated users can see links. Click Here To Register...]
07/20/2011 01:12 Haxor#13
one another question

My loader from oriya9 code work , but the problem is sro_client is hidden
I mean espically in esro
in isro i can see sro_Client but in this i cant
You know how to show it , so i can do hide and show features to the loader
07/20/2011 14:50 Oriya9#14
Quote:
Originally Posted by benco View Post
Mutex is a class in .NET not an API function... if his application is open every time he should dispose the instance of this classe for multiple launching.
read msdn Mutext :
[Only registered and activated users can see links. Click Here To Register...]
You are right, sorry, I must have been confused with something else.

@UP
Must be a GG related issue with your system, it is working for me.
07/20/2011 21:24 vitalka#15
ive found a really simple code snippet for findpattern, but i dont know why it doesnt work in Visual C# 2008:

Can someone test it?

[Only registered and activated users can see links. Click Here To Register...]