EMO Style ForumPro - Hos Geldiniz
Giriş yap

Şifremi unuttum

Istatistikler
Toplam 202 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: AnthonyFurey3

Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Arama
 
 

Sonuç :
 


Rechercher çıkıntı araştırma

RSS akısı


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Kimler hatta?
Toplam 1 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 1 Misafir

Yok

[ Bütün listeye bak ]


Sitede bugüne kadar en çok 92 kişi Paz Ağus. 28, 2016 6:58 am tarihinde online oldu.
En son konular
» İnternetten Para Kazandıran Oyun ! Ödeme Alt Limiti Yok ! DEV KONU
Cuma Ağus. 29, 2014 8:33 am tarafından Hello EMO

» goldenchase.net maden yaparak para kazanma
Cuma Ağus. 29, 2014 8:18 am tarafından Hello EMO

» etichal hacker görsel egitim seti
Çarş. Ağus. 06, 2014 4:57 am tarafından Hello EMO

» KO TBL Source C#
Ptsi Ara. 09, 2013 6:36 am tarafından Hello EMO

» x86 Registers
C.tesi Ağus. 24, 2013 5:02 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de WYD
Çarş. Tem. 10, 2013 7:25 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de CS Metodo²
Çarş. Tem. 10, 2013 7:23 am tarafından Hello EMO

» [Tutorial] Aprendendo basico deASM OLLYDBG
Çarş. Tem. 10, 2013 7:22 am tarafından Hello EMO

» Basic C# DLL injector
Ptsi Tem. 08, 2013 7:48 am tarafından Hello EMO

Reklam

InterProcess Communication with Shared Memory

Önceki başlık Sonraki başlık Aşağa gitmek

InterProcess Communication with Shared Memory

Mesaj tarafından EMO Bir Cuma Ağus. 05, 2011 4:55 am

Reference: Board Message

Help me build this tool! Please download the libraries and or the test project and provide some feedback. I'm open to ideas, comments, or health discussion Smile!

I modified some things to my original shared memory project. Before the structure of communication was baked into the libs which make it difficult for uses to modify to suit their own needs. I have since pulled them out of the core lib so that the user can define them as they see fit. (keep in mind this has nothing to do with my IPC_API which uses the communication structure built into the API itself.)

Downloads:
(files were built with VC2008)
Working Binaries [here]
Compiled Libraries [here]
Test Project [here]



Under the hood...
The IPC class holds two sub classes called cIPCClient and cIPCServer which gives it the ability to be a client or server depending on how the end users utilizes it. The IPC class does nothing more then manage the shared memory between client and server.

IPC class
The shared memory is type LPVOID as the core class knows nothing about what information is being passed between applications. Because we are using a client server model I have added the ability to structure two different "packet" message types to be passed between applications, a command packet and a response packet. Communication goes as followed: The server receives some command packet from the client, the server processes the command server side, then returns a response packet back to the client and waits for the next message. Fairly simple and straight forward but not completely useful... yet!

IPC_API
IPC is responsible for managing the communication... but whats being communicated? That's where IPC_API comes in. the IPC_API class is responsible for managing the CONTENT of the communication and the responsibilities of the server. It is nothing more then a class object which contains structured functions to be used between client and server.

Let's take a quick look at the image above and determine whats going on. The server was run first then the client. Both applications print out ther PID for reference before any communication takes place. Once the connection is established, the client sends a series of requests using IPC_API. The first request it makes is to read 6 bytes of memory at location 0x6b000 (the server has a base of 50000) using the following code.

Kod:
x = api.ReadMemory(0x6b000,(BYTE *)return, length);

The server reads the command and executes the function. It this case its function #7 which is read memory. The server reads 6 bytes from the SERVERS process prints it to the screen and sends them back to the client. The client receives the response of the server and prints it to the screen. Using IPC and the IPC_API, the client can read the servers memory without opening the process and using ReadProcessMemory() which many games can detect!

Below is the complete list of the transactions between the client and the server in the above image

Kod:
                x = api.ReadMemory(0x6b000,(BYTE *)junk, length);
                x = api.WriteMemory(0x6b000,(BYTE *)"x01x02x03x04x05x06",(BYTE *)junk,length);
                x = api.ReadMemory(0x6b000,(BYTE *)junk, length);

                x = api.GetCurrentProcessId();
                x = api.GetProcAddress("kernel32.dll","OpenProcess");
                x = api.ReadDWORD(0x6B002); //Example Server base at 0x50000,.data at 0x6B000 =0x01
                x = api.WriteDWORD(0x6B002,10);
                printf("verify by Reading againn");
                x = api.ReadDWORD(0x6B002);

                x = api.CallFunction((DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"),"GetCurrentProcessId"));
                x = api.Search(0x50000,0x20000,(BYTE *)"GetProcAddress",14);

Current the IPC_API can perform the following:
GetCurrentProcessID()GetPRocAddress()CallFunction( ) (function must be within the server process and only pass words)Read a DWORDWrite a DWORDReadMemory (any length)WriteMemory (any length)SearchMemory (any size)

Board Message
http://www.gamereversal.com/index.php?showtopic=609

avatar
EMO
EMO Team
EMO Team

Cinsiyet : Erkek
Burçlar : Yay
Yılan
Mesaj Sayısı : 184
Puan : 110693
Rep Puanı : 5
Doğum tarihi : 28/11/89
Kayıt tarihi : 18/05/11
Yaş : 27
Nerden : EMO world
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO

Kullanıcı profilini gör

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz