Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Rigoberta II

#11
Hola, necesito ver si alguien sabe o conoce algun code parecido a este pero en VB6 ya que esta hecho en C++/C.
Su función es modificar/cambiar/redireccionar la ip del juego por la de localhost ( 127.0.0.1 )

#include <windows.h>
#include <iostream>

using namespace std;

void EnableDebugPriv(); //Nos aumentamos los privilegios, para evitar problemas con permisos... (Ring 3)

void main() {

BYTE newvalue[] = {0x31, 0x00, 0x32, 0x00, 0x37, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //Este es el valor en hexadecimal, de la cadena: 1 2 7 . 0 . 0 . 1 (rellenamos con 0 los numeros del IP antiguo sobrantes)

HWND hwnd = FindWindow(0, "Solitario"); //Buscamos la ventana de nuestro juego/proceso (Yo hice la prueba con Solitario)

DWORD pid;//Declaramos la variable PID para almacenar el ID de nuestro juego/proceso

if(!hwnd) //Si no encontramos la ventana (el handle es nulo)
{
cout << "Error: No se pudo encontrar la ventana!" << endl;
system("pause");
exit(0);
}
else
{
GetWindowThreadProcessId(hwnd, &pid); //Obtenemos el Id del proceso (PID) en base al handle que nos devuelve FindWindow

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); //Abrimos el proceso con acceso total (lectura, escritura)

if(!hProcess) //Si no encontramos el juego/proceso (...)
{
cout << "Error: No se pudo abrir el handle" << endl;
system("pause");
exit(0);
}
else //En caso contrario
{
if (WriteProcessMemory(hProcess, //Juego/Proceso a modificar
(LPVOID)0x0100700C, //Direccion de memoria a modificar (Que en tu caso, si no es dinamica deberia ser: 0x0028B244)
&newvalue, //Nuevos bytes a cambiar (en tu caso el nuevo IP)
sizeof(newvalue), //Tamano de los bytes a modificar
NULL)) //Este parametro lo podemos dejar nulo

cout << "Memoria editada con exito!" << endl; //Exito!
else
cout << "Fallo al editar la memoria!" << endl; //Memoria no existente o protegida
}
CloseHandle(hProcess); //Cerramos el handle abierto anteriormente
}
system("pause");
}

void EnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, false, &tkp, sizeof tkp, NULL, NULL);
CloseHandle(hToken);
}

#12
Si si, la modifique pero no hay caso.
Agregame : cannon996@hotmail.com
Te lo agradecería.
#13
Dunkan te molestaria explicarme una cosa por msn? Lei tus mensajes y estas en la misma que yo :p
Ya encontre el offset, lo puse

WriteLocalhost OFFSET, "VENTANA", "1294808515516,8305"

Pero no logro conectar departe del winsock

Private Sub Cliente_ConnectionRequest(Index As Integer, ByVal requestID As Long)
On Error Resume Next
Cliente(0).Close
For a = 1 To 2
If Cliente(a).State = 0 Then
Server(a).Close
Server(a).RemoteHost = "127.0.0.1"
Server(a).RemotePort = 7666
Server(a).Connect
Cliente(a).Accept requestID

Form load :
Cliente(0).Close
Cliente(0).LocalPort = 7666
Cliente(0).Listen
End Sub

Me dice que el puerto esta en uso,
haciendo netstat tiene algo que ver? Osea
El local de  7666 me figura como 9148 si lo hago asi me sigue tirando Address in use y me remarca
Cliente(0).listen

#14
Cita de: rembolso en 13 Abril 2012, 01:45 AM
ya si no tenes tanta experiencia en vb o te acabas de iniciar tampoco te penses que laburar con dll y apis es facil, se requiere de logica bla y blabla suerte.
Estudio hace mucho tiempo este lenguaje, no me especifique nunca en este area, sino que el estudio era general.
Y respondiendo a blackzerox he buscado bastante en google pero o no funcionaban o no servian para realizar lo que yo queria.
Alguien me explica a como conseguir el pointer/offset del programa/proceso/ventana de un archivo? Ese que empieza con &H........... creo que se saca con el engine buscando la ip del proceso. Pero no logro entender como funciona.
#15
Disculpa que te moleste, esto lo probaste o lo viste en internet. Osea vos decis que sirva?
Como funciona se inyecta en el proceso? Osea como configuro para que proceso hacer todo, ojo no es que no lo lei, sino que no entiendo muy bien.
#16
Hola, mi consulta es la siguiente, hace tiempo estoy intentando hacer un programa en vb6 que envié paquetes modificados a un servidor así como funciona el Rpe Filter, Wpe Pro y demás programas.(Seleccionas un proceso y escuchas todos los datos que se comunican sv/cliente y tiene su respectiva propiedad Send y rcmv )
He leído todos los post y ninguno me resulto, por lo tanto me gustaría saber como hacer esto.
Lei algo de VBPCAP.DLL (Dll Packet Capture ) alguien entiende de esto? Porque no tengo la menor pálida idea.
O sino como sacar el offset(pointer,address) de un proceso/ventana o lo que fuese estuve mirando en el cheat engine buscando la IP y luego copiaba el valor que me daba pero no me resulta.