Cita de: 50l3r en 5 Mayo 2009, 15:20 PM
ya lo dije, no encuentro mas
Simpplemente no te creo o para buscar un manual de VB pones en google "pokemon"

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úCita de: 50l3r en 5 Mayo 2009, 15:20 PM
ya lo dije, no encuentro mas
include 'win32ax.inc'
.data
Separador db "/()·/", 0
Cadena db 'Soy/()·/una/()·/cadena',0
Cantidad dd ?
buffer rb MAX_PATH
.code
start:
stdcall Split,Cadena,Separador,buffer
mov [Cantidad],eax
stdcall Len,Separador
mov ebx,eax
mov ecx,[Cantidad]
inc ecx
mov esi,buffer
.bucle:
push ecx
invoke MessageBox,0,esi,esi,0
stdcall Len,esi
add esi,eax
add esi,ebx
pop ecx
loop .bucle
invoke ExitProcess,0
; cCadena(in) = Cadena a partir
; cSeparador(in) = Separador que se usara para partir la cadena
; cBuffer(out) = A donde se guardara la cadena partida
; Retorna la cantidad de separadores encontrados
proc Split,cCadena,cSeparador,cBuffer
push edi esi ecx ebx
xor ebx,ebx
stdcall copy,[cBuffer],[cCadena]
stdcall Len,[cSeparador]
mov edi,eax
mov esi,[cBuffer]
dec esi
.bucle:
inc esi
cmp byte[esi],0
je .salir
mov cl,byte[esi+edi]
mov byte[esi+edi],0
stdcall comparar,esi,[cSeparador]
mov byte[esi+edi],cl
cmp eax,0
jne .bucle
inc ebx
mov byte[esi],0
add esi,edi
jmp .bucle
.salir:
mov eax,ebx
pop ebx ecx esi edi
ret
endp
proc comparar ,SRC,DST ;Funcion que compara
push edi ecx esi
mov ecx,-1
mov edi,[SRC]
mov al,0
repnz scasb
mov eax,ecx
not eax
mov ecx,eax
mov esi,[SRC]
mov edi,[DST]
repz cmpsb
mov eax,1
jnz Next
dec eax
Next:
pop esi ecx edi
ret
endp
proc Len,cCadena ;Funcion que mide la cadena
push ecx edi
mov ecx,-1
mov edi,[cCadena]
mov al,0
repnz scasb
mov eax,ecx
not eax
dec eax
pop edi ecx
ret
endp
proc copy,cDestino,cCadena ;funcion que copia una cadena
push ecx edi esi
stdcall Len,[cCadena]
add eax,2
mov ecx,eax
mov esi,[cCadena]
mov edi,[cDestino]
rep movsb
pop esi edi ecx
ret
endp
.end start
Cita de: E0N en 5 Mayo 2009, 00:42 AM
-> Obtienes el final del stub gracias a sus datos en el PE, si quieres un ejemplo en VB aquí tienes uno mio: http://e0n-productions.blogspot.com/2008/11/obtener-el-inicio-del-eof.html A partir de la dirección devuelta ya por esa función se encontrarían todos los datos necesarios.
Cita de: Hacker_Zero en 4 Mayo 2009, 20:39 PMCita de: Arcangel_0x7C5 en 4 Mayo 2009, 20:07 PMCita de: WHK en 4 Mayo 2009, 19:31 PMEs muy facil ejecutar el batch desde memoria, se lo pasas al cmd por argumentos como una cadena terminada en 0. cada linea la distinguira por que lo separa un \n.
Lo único que se me puede ocurrir es pasar el bat a memoria pero ahi no sabría como hacer para que el cmd interprete una cadena completa sin que haya archivo.. sinceramente no se me ocurre como ya que cmd interpreta solamente archivos y no strings como bats dentro de un bat.
Prueva esto:
System("echo hola\n echo Soy un Batch")
Saludos
Ves como fue una pena lo de c++. En vb va a ser más complicado hacer eso
.
Saludos
Cita de: Hacker_Zero en 4 Mayo 2009, 16:28 PMPor el for entre otras cosas
why not?
Edito: Creo que ya pillé el why not, malditas etiquetas.
Saludos
CitarMapear el archivo en estos casos suele ahorrar bastante trabajo, ya que se guardan los cambios automáticamente al "desmapearlo".Con mapear el archivo te refieres a usar las api's como CreateFileMapping ? . Si es a si si tienes razón disminuyen el trabajo.
CitarBuen trabajoGracias
Cita de: cΔssiΔnі en 2 Mayo 2009, 01:27 AM
a todas estás, el pueblo se levanta, exige y nos quedamos sin subforo de programación general