|
911
|
Programación / ASM / Re: Ayuda con interrupciones..
|
en: 3 Mayo 2013, 19:42 pm
|
Haaa... Me parecia si que habia algo de eso.. recuerdo haber leido que no funcionaba en todos los "modos" si se puede decir asi.. Bueno, entonces seguramente debo implementar alguna rutina mia, no ? Pero.. como envio el texto a la consola ?
Gracias!!
|
|
|
912
|
Programación / ASM / Re: Ayuda con interrupciones..
|
en: 3 Mayo 2013, 18:52 pm
|
No se si tengo que declarar algo antes.. o que.. en un rato pruebo eso a ver en que estoy errando..
si pongo por ejemplo... no se.. cualquier cosa asi:
.data
Msg db "Hola mundo", 0
.code inicio:
mov dx, offset Msg mov ah, 09h int 21h
end inicio
No funciona... :/
|
|
|
913
|
Programación / ASM / Ayuda con interrupciones..
|
en: 2 Mayo 2013, 23:45 pm
|
Hola amigos, espero anden bien.. Me quede trancado con algo bien simple.. :/ Por que puede ser que no funcionen las interrupciones del DOS ?? No puedo imprimir una cadena en la pantalla con 21h
Gracias y Saludos!
|
|
|
915
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Recomendaciones para evadir heuristica
|
en: 16 Abril 2013, 20:25 pm
|
Hola Karc!
Gracias por tu tiempo y paciencia.. Pero sigo sin entender,, como puedo llamar a LoadLibraryA, si el ensamblador me pide que incluya a kernel32 para poder hacer un invoke a getmodulehandle, a loadlibrary, o a getprocaddress,, no se si se entiende..
O sea,, cualquier funcion que quiera utilizar para poder cargar a kernel32, esta dentro de kernel32...
Me hace acordar a la pregunta: ¿Que fue primero, el huevo o la gallina?
|
|
|
916
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Recomendaciones para evadir heuristica
|
en: 16 Abril 2013, 19:22 pm
|
Huu buenisimo!! Gracias amigos! Tengo para seguir aprendiendo jejeje Una consulta.. el codigo de Karc que puso el enlace mr.blood, ese code lo que hace es "cifrar" y "descifrar" la cadena, por ejemplo "MessageBoxA", no?? (Podria ser cualquier otra cadena, no?) O tiene algo que ver con los ordinales de las apis? porque intente con el programita que hizo karc tambien, el HashGenerator, pero no me reconoce los hash el asm.. o por ende,, no lo estaba implementando bien.. :/ Gracias a todos!!
EDITADO: Me faltaba esto ayer, me habia olvidado.. Si que puedes hacer LoadLibraryA("kernel32") Bien, entiendo que se debe poder.. el problema es que al hacer esto: invoke loadlibrary, "Kernel32" -> Me dice que no se reconoce loadlibrary, porque loadlibrary esta dentro de Kernel32, con lo que para que la reconozca tendria que declarar Kernel32 al inicio del code :/
|
|
|
917
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Recomendaciones para evadir heuristica
|
en: 16 Abril 2013, 01:43 am
|
.386 .model flat, stdcall option casemap:none
include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib
bufSize = MAX_COMPUTERNAME_LENGTH + 1
.data
format1 db 'Computer Name is = %s',0 capt db 'Hello',0
buffer db 100 dup(?) bSize dd bufSize getName db bufSize dup(?)
;Nombres de los Dll utilizados y sus funciones
Lib db "user32.dll", 0 Lib2 db "kernel32.dll",0
Func db "MessageBoxA", 0 Func2 db "wsprintfA", 0 Func3 db "GetComputerName", 0 Func4 db "ExitProcess", 0
DinamicApi Proto :DWORD, :DWORD
.data?
Hand dd ?
.code
start: invoke GetComputerName, addr getName, addr bSize ;Error al usar la libreria kernel32.dll ;invoke DinamicApi, addr Lib2, addr Func3 ;PUSH offset [bSize] ;PUSH offset [getName] ;call Hand
;********************************************************************** invoke DinamicApi, addr Lib, addr Func2 PUSH offset [getName] PUSH offset [format1] PUSH offset [buffer] call Hand ;********************************************************************** invoke DinamicApi, addr Lib, addr Func PUSH MB_OK PUSH offset [capt] PUSH offset [buffer] PUSH NULL call Hand ;********************************************************************** invoke FreeLibrary, addr Hand invoke DinamicApi, addr Lib2, addr Func4 PUSH 0 call Hand ;**********************************************************************
DinamicApi proc Libreria:DWORD, Funcion:DWORD invoke LoadLibrary, Libreria invoke GetProcAddress, eax, Funcion mov Hand, eax ret
DinamicApi endp
END start
Bueno, algo asi quedo el code,, el unico problema es cuando quiero utilizar la API Kernel32, modulo o Dll (Como le quieran llamar) El problema es que LoadLibrary se carga incluyendo a Kernel32,, entonces supongo yo que no puede autollamarse,, Me explico???? Y otra consulta.. Como puedo ofuscar los strings "user32", "messageboxA", etc, etc.. porque eso queda a plena vista del ollydbg, supongo que para un AV no es mayor problema leer esos string tambien.. Saludos !!
|
|
|
919
|
Programación / ASM / Re: Problema al limpiar variable
|
en: 15 Abril 2013, 19:56 pm
|
memfill funciono bien y rapido.. pero lo que dice Eternal es buena opcion.. el tamaño de la 'cadena' esta dada en recv,, seria poner un 0 al final y listo..
|
|
|
920
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Recomendaciones para evadir heuristica
|
en: 15 Abril 2013, 19:17 pm
|
Gracias Karcrack otra vez!! Estoy programando en masm.. creo que entiendo,, ahora me voy a poner con eso..
Tnks!
Bueno,, estoy en esto de la carga dinamica de apis,, podrias decirme si voy bien, o si lo que estoy haciendo tiene sentido ? jaja ( Es que soy nuevo en asm )
.386 .model, etc, etc...
include windows.inc include kernel32.inc ---> Incluyo a kernel32 para poder utilizar LoadLibrary :/ includelib kernel32.lib
.code Inicio:
invoke LoadLibrary, addr Lib --> "user32" (Calculo que el handle me queda en eax) mov Hand, eax --> Hand deberia ser una estructura de tipo handle, supongo.. pero no se declararla.. invoke GetProcAddress, Hand, addr Func --> "MessageBox" (Calculo que lo que retorne, queda en eax)
push 0 push offset [Mensaje] push offset [Titulo] push 0
call eax ( Puede ser esto posible ?? )
invoke ExitProcess, 0
end Inicio
Bueno,, estoy muy mariado o algo de sentido tiene esto ?? Graciasss!!
|
|
|
|
|
|
|