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 - .mokk.

#151
Nose si contigo sea igual, pero conmigo siempre al ejecutar el juego u programa que deceaba leer camabiaba el addres y el puntero que usaba ya no era el correcto, por lo que al principio para ver que funcionara bien lo que hacia dejaba el programa abierto, luego veia bn el addres y eso para leer y luego ya veia y si leia bn ya  luego reiniciaba el programa y si ya no leia eso ya era problema del programa que cambiaba el addres.
#152
mmm ya veo pero jamas haces la conversion del texto aqui te dejo mi code que uso para leer en memoria
Código (vb.net) [Seleccionar]
Imports System
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.ComponentModel
Imports System.Windows.Forms.Application

Module ReadMemory
    <DllImport("kernel32.dll", SetLastError:=True)> Private Function ReadProcessMemory _
(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef lpBuffer As Byte, _
ByVal iSize As Integer, ByRef lpNumberOfBytesRead As Integer) As Boolean
    End Function


    Public Sub ReadMemoryP(ByVal address As Integer)
        Try
     
Dim process0 as string = "calc" 'process0 is the name of pocess

            Dim prox As Process() = Process.GetProcessesByName("process0")
            MsgBox(GetTextinMemory(prox(0).Handle, address, 16) & GetTextinMemory(prox(0).Handle, address + 32, 16))
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


    Private Function GetTextinMemory(ByVal ProcessHandle As IntPtr, ByVal MemoryAddress As IntPtr, ByVal CharsToRead As Integer, Optional ByVal IsUnicode As Boolean = True) As String
        Dim ReturnValue As String = vbNullString
        Dim StringBuffer() As Byte
        If IsUnicode Then
            ReDim StringBuffer(CharsToRead * 2 - 1)
        Else
            ReDim StringBuffer(CharsToRead - 1)
        End If
        Try
            'Dim p As Process() = Process.GetProcessesByName(process0)
            If ReadProcessMemory(ProcessHandle, MemoryAddress, StringBuffer(0), StringBuffer.Length, Nothing) Then
                If IsUnicode Then
                    ReturnValue = System.Text.Encoding.ASCII.GetString(StringBuffer)
                Else
                    ReturnValue = System.Text.Encoding.Default.GetString(StringBuffer)
                End If
            End If

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return ReturnValue
    End Function
End Module
#153
Cita de: [D4N93R] en 12 Noviembre 2010, 17:56 PM
Hay un servicio que se llama Sql Server Browser, revisa que esté Iniciado.

Es verdad revisando post anteriores coloco una imagen donde salia el SQL Browser desabilitado.
#154
Pues nose porque a ti te sale eso ami me sale sin error :s
Solo elijo con
Motor de Base de Datos -> Luego en lo siguiente selecciono Buscar mas y ahi ya lo elijo.



#155
Cita de: MANULOMM en  9 Noviembre 2010, 16:11 PM
Cita de: .mokk. en  8 Noviembre 2010, 22:43 PM

Eso si es verdad, por lo mismo en esta clase de proyectos hay que tener cuidado, desde saber quienes lo tendran y que ellos no se lo pasen a terceros, tambien hacer un login de tipo HWID para hacerlo mejor, y claro proteger nuestra aplicacion para que no pueda ser leida facilmente ya sea con .NET Reflector o algun otro.

Yo solo uso esta forma ya que donde esta hosteada la DB, no es mi PC y crear una web en ella para manejar la DB se me hace mas tedioso que crear una aplicacion de escritorio hehe , proximamente vere eso para hacer alguna en silverlight(si esque se puede).

Ante esto tienes varios escenarios.
1. Si es una aplicacion de escritorio y la BD esta en tu red local no hay problema pues es un escenario seguro detras de un proxy o un NAT etc.
2. Si es una app web y el servidor web se encuentra en la misma red del servidor de datos tampoco hay lio, de hecho es un poco redundante hacer un servio para consumirlo en una web si todo es tuyo.
3. Para aplicaciones en silverlight si necesitas un servicio web para conectarte con los datos pues silverlight es de cliente y necesita pasar por el Servidor para obtener respuesta como todo es asincrono la unica forma de conexion con el servidor es por medio de un servicio, al igual que en flash o Flex.


Atentamente,

Juan Manuel Lombana
Microsoft Student Partner
Microsoft Certified Professional
Medellín - Colombia

Si, es lo que ando viendo aunque tambien debo tener cuidado con ello puesto que ya en el servidor tenemos una web la cual por ahora no hemos tenido problemas, pero hubo una ocacion en que uno de staff presto su cuenta y como anteriormente el panel estaba tambien en web accesaba facilmente sin nunca saber quien fuera y ahi hubo conflictos por lo que decidimos crear la aplicacion de escritorio que tambien obtenia datos de la PC para asi asegurar que sea del Staff , estos datos ya previamente obtenidos. Y si al ejecutar la aplicacion y la PC no es alguna que tenga acceso se autoelimina la aplicacion.

Esto a servido por ahora, pero como tu dices si llegan a obtener datos para el acceso a la DB podria ser crucial.

En tu opinion que prefiririas usar? A la vez aveces obtenemos ataques Ddos por lo que antes tumbaban la web y no teniamos acceso al panel, y como la aplicacion es por ip esto no importa si la web cae o no.
#156
mmmm si se podria decir que si pero esto seria solo una parte, aparte seria tambien crear la DLL con tales funciones o si es un tipo trainer seria o podria usarse directamente con WriteProcessMemory
#157
En si lo que trata si has jugado alguna vez usando hack haz usado un injector osea se encarga de meter o injectar a un proceso una DLL o codigo dentro del mismo para asi tener cambios en el proceso u aplicacion.
#158
Lee un poco sobre el manifesto y configurar a este tipo.

Luego ahi solo cambiaras en el manifesto donde esta lo de
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
a
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
#159
Si solo necesitas usar la IP de donde esta localizado la DB, yo uso crymore.sytes.nt que cree en la pagina de no-ip.com porque mi IP es dinamica osea cada dia cambia(publica) por lo tanto tendria que estar cambiando el programa y con lo de no-ip.com me descarga un programa y me registra un tipo host para que crymore.sytes.net siempre este actualizada ahi con mi IP.

En conclusion si solo necesitas la IP donde esta la Base de Datos.
#160
Aver si este te sirve es uno que tengo hace tiempo hehe

Código (vb.net) [Seleccionar]

Imports System.IO
Public Class Form1
   Private TargetProcessHandle As Integer
   Private pfnStartAddr As Integer
   Private pszLibFileRemote As String
   Private TargetBufferSize As Integer

   Public Const PROCESS_VM_READ = &H10
   Public Const TH32CS_SNAPPROCESS = &H2
   Public Const MEM_COMMIT = 4096
   Public Const PAGE_READWRITE = 4
   Public Const PROCESS_CREATE_THREAD = (&H2)
   Public Const PROCESS_VM_OPERATION = (&H8)
   Public Const PROCESS_VM_WRITE = (&H20)

   Public Declare Function ReadProcessMemory Lib "kernel32" ( _
   ByVal hProcess As Integer, _
   ByVal lpBaseAddress As Integer, _
   ByVal lpBuffer As String, _
   ByVal nSize As Integer, _
   ByRef lpNumberOfBytesWritten As Integer) As Integer

   Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _
   ByVal lpLibFileName As String) As Integer

   Public Declare Function VirtualAllocEx Lib "kernel32" ( _
   ByVal hProcess As Integer, _
   ByVal lpAddress As Integer, _
   ByVal dwSize As Integer, _
   ByVal flAllocationType As Integer, _
   ByVal flProtect As Integer) As Integer

   Public Declare Function WriteProcessMemory Lib "kernel32" ( _
   ByVal hProcess As Integer, _
   ByVal lpBaseAddress As Integer, _
   ByVal lpBuffer As String, _
   ByVal nSize As Integer, _
   ByRef lpNumberOfBytesWritten As Integer) As Integer

   Public Declare Function GetProcAddress Lib "kernel32" ( _
   ByVal hModule As Integer, ByVal lpProcName As String) As Integer

   Private Declare Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" ( _
   ByVal lpModuleName As String) As Integer

   Public Declare Function CreateRemoteThread Lib "kernel32" ( _
   ByVal hProcess As Integer, _
   ByVal lpThreadAttributes As Integer, _
   ByVal dwStackSize As Integer, _
   ByVal lpStartAddress As Integer, _
   ByVal lpParameter As Integer, _
   ByVal dwCreationFlags As Integer, _
   ByRef lpThreadId As Integer) As Integer

   Public Declare Function OpenProcess Lib "kernel32" ( _
   ByVal dwDesiredAccess As Integer, _
   ByVal bInheritHandle As Integer, _
   ByVal dwProcessId As Integer) As Integer

   Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
   ByVal lpClassName As String, _
   ByVal lpWindowName As String) As Integer

   Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _
   ByVal hObject As Integer) As Integer




   Private Sub Inject()
       Dim ExeName As String = (RichTextBox1.Text)
       On Error GoTo 1
       Timer1.Stop()
       Dim TargetProcess As Process() = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(TextBox1.Text))
       TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id)
       pszLibFileRemote = ExeName
       pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")
       TargetBufferSize = 1 + Len(pszLibFileRemote)
       Dim Rtn As Integer
       Dim LoadLibParamAdr As Integer
       LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
       Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
       CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
       'CloseHandle(TargetProcessHandle)
       Exit Sub
1:      Label4.Text = "Error al Injectar " & Path.GetFileName(RichTextBox1.Text)
       Exit Sub

   End Sub

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Dim ExeName As String = (RichTextBox1.Text)
       If IO.File.Exists(ExeName) Then
           Dim TargetProcess As Process() = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(TextBox1.Text))
           If TargetProcess.Length = 0 Then
               Label4.Text = ("Esperando por ..." & TextBox1.Text)
           Else
               Label4.Text = Path.GetFileName(RichTextBox1.Text) & " Injectada en " & TextBox1.Text
               Call Inject()

           End If
       Else
           Me.TextBox1.Text = (Path.GetFileName(ExeName) + ".dll no existe")

       End If
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Button1.Enabled = False
       Timer1.Interval = 50
   End Sub


   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       OpenFileDialog1.Filter = "Archivos DLL|*.dll"
       OpenFileDialog1.Title = "Selecciona la DLL"
       OpenFileDialog1.FileName = "Dll"
       If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
           RichTextBox1.Text = OpenFileDialog1.FileName
           Button1.Enabled = True
       End If
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       If TextBox1.Text <> "" Then
           If InStr(TextBox1.Text, ".exe") Then
               Timer1.Start()
           Else
               MsgBox("Debes colocar el nombre del proceso, Ejemplo: Gunz.exe", MsgBoxStyle.Critical, "Error")
           End If
       Else
           Label4.Text = "Coloca el nombre del Proceso"
       End If
   End Sub
End Class


Losé tiene cosas y codigos que ni al caso para el injector, esque lo tenia junto con otras funciones pero en si ese sera el injector hehe