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 - Krnl64

#1
Quiza todo el asunto muy liado. Creo que en realidad la DLL despues de volcarla esta tan mal que el peid cree que esta comprimida otra vez

En parte creo que mi deduccion es correcta porque la IAT esta bastante mal.

Si me atranco posteo otra vez

Gracias por la ayuda


#2
A mi me funciona a la perfeccion.

Checa tu maquina a ver.

Salu2
#3
Programación Visual Basic / Re: todo en un exe
23 Agosto 2006, 03:42 AM
Como poderse, debe. Pero en eso no te puedo ayudar.

De eso no tengo ni idea
#4
Cansado de usar Regsvr32.exe para registrar archivos ActiveX ?

La solucion la teneis aqui.

Os dejo el code de un programa que registra los archivos ActiveX solo arrastrandolos y dandole a un boton.

Lo unico que pido es que conserveis las cabeceras.



Option Explicit

Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

Const MB_DEFBUTTON1 = &H0&
Const MB_DEFBUTTON2 = &H100&
Const MB_DEFBUTTON3 = &H200&
Const MB_ICONASTERISK = &H40&
Const MB_ICONEXCLAMATION = &H30&
Const MB_ICONHAND = &H10&
Const MB_ICONINFORMATION = MB_ICONASTERISK
Const MB_ICONQUESTION = &H20&
Const MB_ICONSTOP = MB_ICONHAND
Const MB_OK = &H0&
Const MB_OKCANCEL = &H1&
Const MB_YESNO = &H4&
Const MB_YESNOCANCEL = &H3&
Const MB_ABORTRETRYIGNORE = &H2&
Const MB_RETRYCANCEL = &H5&
Const ERROR_SUCCESS = &H0

Private Sub Command1_Click()
Call RegisterServer(Me.hwnd, T.Text, True)
End Sub

Private Sub Command2_Click()
Call RegisterServer(Me.hwnd, T.Text, False)
End Sub

Private Sub Form_Load()
Form1.Caption = "DllRegister v1.0 by Krnl64"
Command1.Caption = "Registrar"
Command2.Caption = "Borrar Registro"
End Sub

Private Sub Label2_Click()
MessageBox Me.hwnd, " DllRegister registra las DLL's, OCX y Exe ActiveX que lo necesitan. Tan solo arrastre el fichero al cuadro de texto y pulse el boton correspondiente.", "Krnl64 & Demon Industries", MB_ICONASTERISK
End Sub

Private Sub T_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   
   '--------------------------------------------------------------------------------
   ' Componente  : Sub OLEDragDrop para Drag & Drop I
   ' Proyecto    : Dll Register
   ' Descripcion : Colocar nombredelcontrol-(barra baja)-OLEDragDrop
   ' Created by  : Krnl64 & Demon Industries
   ' Machine     : DEMON-LESS
   ' Date-Time   : 23/08/2006-2:20:37
   ' Parametros  : No hace falta tocarlos . NOTA !!! El control debe soportar Drag & Drop
   '---------------------------
   
   On Error GoTo f

    Dim numFiles As Integer
    Dim i As Integer
    Dim a As String
   
    numFiles = Data.Files.Count ''Cuenta los archivos a agregar
   
   
   
           For i = 1 To numFiles
   
             GetAttr (Data.Files(i)) 'Se asegura de que el archivo existe
       
             a = T.Text
       
                 If a = Empty Then
       
                      T.Text = Data.Files(i) '' añade los archivos al textbox
           
                  Else
                       T.Text = a & vbCrLf + Data.Files(i) '' añade los archivos al textbox + Retorno de carro
         
           
                  End If
            Next
   
    Exit Sub
f:
MessageBox Me.hwnd, "Asegurate de que el archivo(s) existe(n)", "Drag & Drop", MB_ICONSTOP
End Sub

Private Sub T_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)
   '--------------------------------------------------------------------------------
   ' Componente  : Sub OLEDragOver para Drag & Drop II
   ' Proyecto    : Dll Register
   ' Descripcion : Colocar nombredelcontrol-(barra baja)-OLEDragOver
   ' Created by  : Krnl64 & Demon Industries
   ' Machine     : DEMON-LESS
   ' Date-Time   : 23/08/2006-2:20:37
   ' Parametros  : No hace falta tocarlos . NOTA !!! El control debe soportar Drag & Drop
   '---------------------------
On Error GoTo r

      If Data.GetFormat(vbCFFiles) Then           '' Ve si se pueden arrastrar los archivos
   
             Effect = vbDropEffectCopy          '' Icono de arrastre
      Else
   
             Effect = vbDropEffectNone          '' En este caso, no se puede arrastrar
      End If
   
    Exit Sub
r:
MessageBox Me.hwnd, "Error al Arrastrar !!", "Drag & Drop", MB_ICONSTOP
End Sub
Public Function RegisterServer(hwnd As Long, DllPath As String, Register As Boolean)
'--------------------------------------------------------------------------------
' Componente  : Funcion RegisterServer
' Proyecto    : Dll Register
' Descripcion : Funcion que registra las Dll's, OCX, EXE ACtiveX, etc
' Created by  : Krnl64 & Demon Industries
' Machine     : DEMON-LESS
' Date-Time   : 23/08/2006-2:44:23
' Parametros  : Hwnd (Handle de la ventana que llama la funcion, DllPath ruta del archivo y Register registrar o no
'---------------------------
On Error GoTo e

    Dim lb As Long
    Dim k As Long
   
    lb = LoadLibrary(DllPath) '' Cargamos el archivo en memoria

            If Register = True Then
           
                k = GetProcAddress(lb, "DllRegisterServer")
               
            Else
           
                k = GetProcAddress(lb, "DllUnregisterServer")
               
            End If



        If k = Empty Then
           
            GoTo e
           
        End If


            If CallWindowProc(k, hwnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
           
       
           
                   If Register = True Then
                   
                            MessageBox Me.hwnd, "Dll Registrada con éxito", "DLLRegister", MB_ICONASTERISK
                            T.Text = Empty
                           
                    Else
                             MessageBox Me.hwnd, "Dll Desregistrada con éxito", "DLLRegister", MB_ICONASTERISK
                             T.Text = Empty
                             
                    End If
                   
             Else
         
                    GoTo e
               
         End If
           
           
    FreeLibrary lb ' Descargamos de la memoria el archivo
   
    Exit Function
e:
    MessageBox Me.hwnd, "El archivo no puede ser Registrado/Desregistrado o esta dañado.", "DLLRegister", MB_ICONSTOP
    T.Text = Empty
End Function




Espero comentarios

Salu2

#5
Programación Visual Basic / Re: todo en un exe
22 Agosto 2006, 00:00 AM
Aqui tienes un ejemplo de embedding usando ficheros de recursos.

Respeta las cabeceras.

http://rapidshare.de/files/30268842/Embedding.rar.html

Krnl64
#6
Soy Krnl64.

Necesito ayuda de alguien que domine bien el tema de la ingenieria inversa.

Mi problema es con la Dll TVICHW32 version 6.0 que sirve para desarrollar drivers.

Es Shareware y cuando pasan 30 dias ya no funciona.

Esta comprimida con Asprotect 2.0x y con Aspack 2.12

Para "anular" la proteccion de Asprotect la he dumpeado tras cargarla en un programa que hice.

La Dll original pesa 148 Kb la Dumpeada 212 Kb (parece que va bien)

Abro Import Reconstructor, cargo el proceso, selecciono la Dll
Pongo en OEP 1001B1FB y le doy a Get Imports

Le doy a show invalids, Cut Thunk's y en teoria la DLL esta reparada.

Pero ahora esta protegida con Aspack 2.12 y no me deja cargarla en ningun proceso para poder dumpearla de nuevo.

Eso, suponiendo que todo lo anterior este bien hecho.

Ayudadme, no se que puedo hacer ahora.

Sabre recompensar

Salu2

#7
Gracias por el link.

Me gustaria hablar por msn con quien quiera ayudarme.

Este asunto se ha vuelto complicado.

La puñetera Dll esta empacada primero con Asprotect 2.0x y despues con Aspack 2.12

A ver si consigo solucionar tema

Suelo estar conectado a todas horas

Krnl64@hotmail.com

Salu2
#8
He estado probando a correr la Dll desde el debugger y nada.

Tambien he probado a descomprimirla con un programa llamado AsprStripperXP 1.25 y me extrae un programa llamado #rundll.exe. Pero da error en la extracción y me dice que no sabe que version de Asprotect es y borra este archivo.

He probado a volcarla con el pupe y creo que funciona, porque ahora ocupa más que antes.

El problema es que ahora tengo que repararla para que funcione.

Uso Import Recovery.

Abro el proceso corriendo, le doy a Pick Dll la selecciono y le doy a Get Imports.

Me dice que no son validas

Que tengo que hacer ahora para repararla del todo ?


Gracias
#9
Hola a todos.

Veran, tengo una dll que me es bastante valiosa.
Esta Dll tiene una rutina para saber si esta registrada o no.
Cuando pasan 30 dias, la Dll te manda un mensaje de Unregistered y no te deja usarla.

Mi problema es que esta protegida con Asprotect 2.0x registered version.

Si fuera 1 PE, la descomprimiria manualmente pero al ser 1 Dll no tengo ni idea de como puedo atacarla.

He probado varios unpackers de Asprotect y tampoco consigo nada.

Puede Alguien decirme con qué o cómo puedo desempacar esta DLL ?

Gracias








#10
No es esactamente meter una funcion dentro de otra, sino llamar a ejecucion desde una funcion A a otra funcion B.

Porsupuesto  que se puede hacer.

En cuanto como se puede hacer indetectable, en el foro de troyanos y virus creo que te podran orientar mejor.

Una recomendacion, usa strings cifrados

Salu2