Seguridad. Felipe Andres Manzano FaMAF - Universidad Nacional de Córdoba - Argentina
|
|
- Soledad Farías Fernández
- hace 6 años
- Vistas:
Transcripción
1 Seguridad Felipe Andres Manzano FaMAF - Universidad Nacional de Córdoba - Argentina 2011
2 Se puede ganar?? i n t main ( ) { i n t cookie ; char buf [ 8 0 ] ; gets ( buf ) ; } i f ( cookie == 0x ) p r i n t f ( " Gansaste! \ n " ) ;
3 Atacante/Ataque/Vulnerabilidad Los programas tienen bug/errores Vulnerabilidad es un tipo de error que permite un ataque Ataque es simplemente una tecnica que utiliza el atacante Atacante es es quien intenta ver, modificar o corromper informacion que no deberia (con un fin malicioso)
4 Ataques de Ingenieria Social Caballitos de troya (Ejecutame este programita por favor) Login falso Lluvia de Pendrives
5 Rootkits (persistencia/ataques del programador) Hooking. Interceptar la ejecucion en algun punto y devolver el control al programa/funcion original. Cambiar programas de usuario. Cambiar codigo fuente Cambiar compilador Rootkit de kernel
6 Atacante externo Server side (servicios) Client Side (desktop) Local (Escalacion de privilegios)
7 Vulnerabilidades en software El input es controlado por un atacante Bugs + datos mezclados con informacion de control = vulnerabilidades Emergen clases de equivalencia Inyeccion de comandos Desbordamiento de enteros Buffer Overflows Format strings... etc..
8 Inyeccion de comandos Un programa vulnerable a injeccion de comandos utiliza la entrada del usuario para construir una linea de comando de shell si realizar los checkeos necesarios. El atacante controla parte de la linea de comandos a ejecutarse por el programa vulnerable y finalmente puede insertar comandos subrepticiamente.
9 Inyeccion de comandos - Ejemplo i n t main ( i n t argc, char argv ) { char b u f f e r [ 6 4 ] = " date " ; p r i n t f ( " Bienvenido a Megaserver! \ n \ r " ) ; p r i n t f ( " La hora y fecha a c t u a l es : " ) ; system ( " date " ) ; p r i n t f ( " Por f a v o r ingrese l a nueva : " ) ; gets ( b u f f e r + s t r l e n ( b u f f e r ) ) ; system ( b u f f e r ) ; return 0; }
10 Inyeccion de comandos - System system - ejecuta una orden del interprete de ordenes SINOPSIS #include <stdlib.h> int system(const char *string); DESCRIPCION system() ejecuta una orden especificada en string llamando a /bin/sh -c string, y regresa despues de que la orden se haya terminado de ejecutar. blah...
11 Inyeccion de comandos - Demo DEMO
12 Desbordamiento de enteros #include < s t d i o. h> i n t main ( i n t argc, char argv [ ] ) { unsigned i n t cookie = 0x ; unsigned i n t parameter = a t o i ( argv [ 1 ] ) ; i f ( cookie > cookie+parameter ) p r i n t f ( "NAAAAAAAAAAH! \ n \ a " ) ; return 0; }
13 Stack Overflows El tipo de vulnerabilidad mas conocido y documentado "Smashing the stack for Fun and Profit" (Aleph, One, 1996) ( 14&issue=49) Esto se viene explotando desde hace 25 anhos
14 Buffers Un cacho de memoria. Una porcion memoria continua y limitada En C, el buffer mas comun es un arreglo Los desbordamientos son posibles porque C/C++ no revisa los limites de los accesos Entonces se puede leer y escribir! fuera de rango
15 Leyendo fuera de rango #include < s t d i o. h> #include < s t r i n g. h> i n t main ( ) { i n t array [ 5 ] = { 1, 2, 3, 4, 5 } ; p r i n t f ( "%08x \ n ", array [ 5 ] ) ; } gcc -O0 -g read5.c -o read5 El compilador no se queja, pero cuando lo ejecutamos imprime un valor "loco"
16 Escribiendo fuera de rango i n t main ( ) { i n t array [ 5 ] ; i n t i ; for ( i = 0; i < 255; i ++) array [ i ] = 10; } gcc -O0 -g write5.c -o write5 El compilador no se queja, pero cuando lo ejecutamos "crashea"
17 La pila estructura de datois LIFO sirve para guardar variables automaticas(locales) e informacion de control para la anidacion de funciones en INTEL el registro *ESP* apunta al tope de la pila (al ultimo valor usado) y *EBP* a la base del marco de activacion actual (no es necesario) las intrucciones PUSH and POP usan ESP para acceder a la memoria de la pila
18 Buffer Overflows - Stack i n t main ( i n t argc, char argv [ ] ) { i n t cookie = 0x ; char b u f f e r [ 4 0 ] ; } s t r c p y ( b u f f e r, argv [ 1 ] ) ; i f ( cookie == 0x ) p r i n t f ( " Ganaste! \ n \ a " ) ; return 0;
19 Buffer Overflows - Stack $ gcc -O0 -g stack.c -o stack $./stack XXXXXXXXXXX...XXXXXXXXXXDCBA
20 Buffer Overflows - Controlando el eip EY! Pero ahi tambien esta la direccion de retorno de la funcion Intentemos sobreescribirla poniendo mucho mas input Vamos a sobreescribir todo el marco de activacion La direccion de retorno de la funcion actual es una variable local implicita e *invisible* para el programador
21 Buffer Overflows - EIP? A donde saltar? Hay que decidir donde saltar Historicamente se salta nuevamente a la pila Podemos elejir un lugar en la funcion main... digamos printf ("Ganaste!\n"); La direccion se investiga usando el gdb
22 Format strings SINOPSIS int printf(const char *format,...); DESCRIPCION Las funciones de la familia printf producen una salida de acuerdo a format. FORMAT %d El argumento int se convierte a la notacion decimal con signo. %n El numero de caracteres escritos hasta ahora se guarda en el entero indicado por el argumento de tipo puntero int * No se convierte ningun argumento.!!!!!!
23 Format strings - Ejemplo i n t main ( i n t argc, char argv [ ] ) { i n t value = 0xdeadbeef ; i n t cookie = 0x ; i n t value_p = &value ; i n t cookie_p = &cookie ; p r i n t f ( " La d i r de cookie :%08x \ n ", cookie_p ) ; p r i n t f ( " La d i r de value :%08x \ n ", value_p ) ; p r i n t f ( argv [ 1 ] ) ; } p r i n t f ( " El v a l o r de cookie :%08x \ n ", cookie ) ; p r i n t f ( " El v a l o r de value :%08x \ n ", value ) ; i f ( cookie == value ) p r i n t f ( "NAAAAAAAAAAH! \ n \ a " ) ; return 0;
24 Format strings - DEMO DEMO
25 Protecciones NX/DEP Mapas de memoria no ejecutables son... ergh.. no executables ASLR Aleatorizacion de la posicion base de los mapas de memoria /GS Cookie o propolice. Canaries en las stacks.
26
Exploiting... Stack Based Buffer Overflow
Exploiting... Stack Based Buffer Overflow FAMAF UNC November 10, 2015 Se puede ganar? int main () { int cookie ; char buf [80]; } gets ( buf ); // Lee hasta el primer... if ( cookie == 0 x41424344 ) printf
Más detallesAdministración de memoria: Memoria y seguridad
Índice Introducción 1 Introducción 2 3 4 Seguridad? Introducción En un sistema de cómputo, no podemos asumir la mejor intención Un sistema puede tener distintos usuarios, el sistema protege a los datos
Más detallesIntroducción a Sistemas Operativos: Ficheros
Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,
Más detallesCRIPTOGRAFÍA Y SEGURIDAD INFORMÁTICA (66.69) Trabajo Práctico: Buffer Overflow
Universidad de Buenos Aires, Facultad de Ingeniería CRIPTOGRAFÍA Y SEGURIDAD INFORMÁTICA (66.69) Trabajo Práctico: Buffer Overflow Alumnos: Benarós, Pablo 78623 pbenaros@yahoo.es Paván, Adrián 77659 tanistico@gmail.com
Más detallesEntender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este
COMO PENETRAR UN SISTEMA POR MEDIO DE DESBORDAMIENTO DE BUFFER OBJETIVO Entender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este AGENDA Programas
Más detallesPila / Convención C / Interacción C-ASM. Ejercicios. Pila. Organización del Computador II. 21 de marzo de 2017
Organización del Computador II 21 de marzo de 2017 / / Hoy vamos a ver / / Para ponernos de acuerdo... Está en memoria. RSP y RBP la definen. Crece númericamente para atrás. / / Cómo la usamos? PUSH y
Más detalles05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales
05 Funciones en lenguaje C Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 1 Temario Programación funcional Declaración (prototipos) y definición de funciones
Más detallesIntroducción a Sistemas Operativos: Procesos
Introducción a Sistemas Operativos: Procesos Clips xxx Fr ancisco J Ballesteros 1. Variables de entorno Otra forma de darle información a un proceso (además de usando sus argumentos) es utilizar las llamadas
Más detallesEstructuras de Datos. La pila es un objeto dinámico en constante cambio.
21 Capítulo 2. LA PILA (STACK). 2.1 Definición y ejemplos. Una pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesInformática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Más detallesLenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Más detallesEjercicios sobre tuberías
Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son
Más detallesHacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13
Práctico Seguridad Sistemas Operativos Hacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13 1) Suponga que se previene la ejecucion de datos localizados en la pila de una funcion (osea,
Más detallesUso avanzado de punteros
Uso avanzado de punteros Mario Medina C. mariomedina@udec.cl Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesArchivos & Cadenas CURSO DE PROGRAMACIÓN EN C. Centro de Investigación y de Estudios Avanzados del IPN. CINVESTAV - Tamaulipas.
Archivos & Cadenas CURSO DE PROGRAMACIÓN EN C Centro de Investigación y de Estudios Avanzados del IPN. CINVESTAV - Tamaulipas. Febrero 2016 [Curso de programación en C] - Archivos & Cadenas 1/17 Archivos
Más detallesProgramación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
Más detallesEl lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Más detallesESTRUCTURAS DINÁMICAS DE DATOS (PILAS)
200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas
Más detallesSOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
Más detallesAnalista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS
PUNTEROS 1 Punteros en C Un puntero es una variable que almacena direcciones de memoria tipo *puntero; tipo variable; puntero = &variable; ffd0 valor variable fff0 ffd0 puntero A partir de la última sentencia
Más detallesTP N 14 Compilando C/C++ bajo GNU/Linux
Taller de GNU/Linux 2003- TP14 - hoja 1/5 Universidad Nacional de La Matanza Ingeniería en Informática-Taller de GNU/Linux 2003 TP N 14 Compilando C/C++ bajo GNU/Linux Objetivos: Utilizar en forma básica
Más detallesVULNERABILIDADES DE VALIDACIÓN DE ENTRADA
VULNERABILIDADES DE VALIDACIÓN DE ENTRADA Explotación, Modelo de Ataques y Riesgo Residual Juan Rafael Álvarez Correa Fluidsignal Group Juan Guillermo Lalinde Pulido Universidad EAFIT 1 ORDEN DEL DÍA Definición
Más detallesCurso: (62612) Diseño de aplicaciones seguras
Curso: (62612) Diseño de aplicaciones seguras Fernando Tricas García Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza http://webdiis.unizar.es/~ftricas/ http://moodle.unizar.es/
Más detallesLenguaje de Programación: C++, INPUT OUTPUT(Variables)
UG Lenguaje de Programación: C++, INPUT OUTPUT() Universidad de Guanajuato Septiembre 2010 MAIN int main (); // no arguments int main (inl argc, char* argv[]); // arguments arcg: cantidad de parámetros
Más detallesUNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una
Más detallesEntrada/Salida (Standard) Clase 6 Introducción a la Computación Patricia Borensztejn
Entrada/Salida (Standard) Clase 6 Introducción a la Computación Patricia Borensztejn Euler 3 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143?
Más detallesPROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C
PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido
Más detallesSeguridad hoy en día. Claudio Salazar csalazar@inf.utfsm.cl http://nlc.pinguinux.cl PinguinuX Team
Seguridad hoy en día. Claudio Salazar csalazar@inf.utfsm.cl http://nlc.pinguinux.cl PinguinuX Team (cc) muehlinghaus Un montón de noticias Se filtran datos personales de 6 millones de chilenos vía Internet
Más detallesSEMINARIO C para programadores java. Sesión 5
2º de Ingeniería Informática, Curso 2008/2009 SEMINARIO C para programadores java (este seminario forma parte de las actividades del proyecto piloto) Sesión 5 Contenidos: 1. Depuración de programas en
Más detallesESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C
2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser
Más detallesEQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO
EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3
Más detallesCurso: (30227) Seguridad Informática
Curso: (30227) Seguridad Informática Fernando Tricas García Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza http://webdiis.unizar.es/~ftricas/ http://moodle.unizar.es/ ftricas@unizar.es
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Funciones en lenguaje C Funciones en lenguaje C Definición de funciones Declaración de funciones Relación entre variables y funciones Parámetros
Más detallesQué es un Buffer Overflow? Código a analizar:
Qué es un Buffer Overflow? Es una falla dentro de un software, en la cual, mientras se copian datos hacia un buffer se sobrepasa el límite del mismo, escribiendo así datos sobre la memoria adyacente permitiendo
Más detallesTaller de Protección y Seguridad
Taller de Protección y Seguridad Sistemas Operativos Diego Fernandez Slezak (gracias Sabi!!!) 1 Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires SO - Taller
Más detallesTema: Lenguaje ensamblador embebido
Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras
Más detallesActividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE
Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE 1. Qué es un bucle? 2. A que se denomina cuerpo de un bucle? 3. Define iteración de un bucle. 4. Cuál es el cuerpo de un bucle? 5. Qué es
Más detallesmov_and_reg =========== En este reto se nos pedía que calculásemos el valor del registro eax al final de la ejecución del siguiente código:
mov_and_reg =========== En este reto se nos pedía que calculásemos el valor del registro eax al final de la ejecución del siguiente código: inicio: mov $1337, %eax mov $31337, %ebx mov $3371, %ecx xor
Más detallesANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO
ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez INTRODUCCIÓN Existen diferentes vulnerabilidades que, dependiendo de sus características, las podemos clasificar
Más detallesExamen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Más detallesT1-Introducción. Índice
T1-Introducción 1.1 Índice El papel del S.O. Servicios que ofrece el S.O. Formas de acceder al kernel (Tema 8 EC) Modos de ejecución Interrupciones, excepciones y llamadas a sistema Llamadas a sistema
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Más detallesExamen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesSistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación
Más detallesUniversidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
Más detallesPaso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.
Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,
Más detalles1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Más detallesEjercicios de la sesión 4 de C resueltos
Ejercicios de la sesión 4 de C resueltos 1. Usando el procedimiento del ejercicio 2 del seminario anterior, escribe un programa que multiplique dos matrices A y B leídas de ficheros, la primera de tamaño
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Más detallesObjetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1
Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador
Más detallesEn este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesFunciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Más detallesFUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera de Ingeniería Informática
Página 1/14 Universidad Nacional del Litoral Facultad de Ingeniería y Ciencias Hídricas Departamento de Informática FUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera
Más detallesREPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2039 Resumen:
Más detalles.: ASM / Shellcoding Series :. II Bypassing local Linux x86 ASLR protection
.: ASM / Shellcoding Series :. II Bypassing local Linux x86 ASLR protection por vlan7 vlan7 [at] overflowedminds [point] net http://www.overflowedminds.net http://zen7.vlan7.org 27-Feb-2011 1 Índice 1.
Más detallesREPRESENTACIÓN DE DATOS
REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener
Más detallesPROGRAMACION / Clave: 11214
PRACTICA 10. Programas en DevC++ 1.- Programa que imprima las tablas de multiplicar del 1 al 10, se deberá hacer una pausa entre tabla y tabla de multiplicar. 2.- Programa que se repita N cantidad de veces
Más detallesAnalista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final
Trabajo Final 1 Objetivo Comprender (en gran parte) un programa desarrollado en: C++ (Core ) Generador de código / Ejecución de comandos Flex (Lex) Lexer Genera un Analizador Léxico en C http://en.wikipedia.org/wiki/lex_(software)
Más detallesSCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW
SCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW INSTRUCCIONES Para la resolución del reto habrá que tener una máquina física o virtual Linux instalada al menos con las siguientes características: - Compilador
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesEstructura de Datos [Tipos de datos concretos y tipos de datos abstractos]
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura
Más detallesAvanzando un poco, Buffer Overflow con pila no ejecutable: Return into libc Ampliación del artículo sobre Stack-Based Buffer Overflow, by TuXeD
Avanzando un poco, Buffer Overflow con pila no ejecutable: Return into libc Ampliación del artículo sobre Stack-Based Buffer Overflow, by TuXeD Hola de nuevo ;-). Vimos en la revista número 27 qué son
Más detallesIntroducción a la Computación (Matemática)
Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Brevísima Introducción a la Organización de Computadoras 1 Mapa de la materia Programas simples en C++. Especificación de problemas.
Más detallesTRUCOS con el DDD. // '&' para que la terminal no se quede pillada // si nos olvidamos el &: <Ctrl+Z> fg<intro>
TRUCOS con el DDD Autor: Manel Guerrero Versión: 0.1 Ultima versión en: http://personals.ac.upc.edu/guerrero/fo Fuentes: http://www.gnu.org/software/ddd/manual/html_mono/ddd.html
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos
Más detallesPrueba N o 1. Programación II
UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.
Más detallesPor ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:
Arreglos unidimensionales y multidimensionales Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua.
Más detallesIntroducción a C: Variables, Tipos El tipo «int» Clase 3 Introducción a la Computación Patricia Borensztejn
Introducción a C: Variables, Tipos El tipo «int» Clase 3 Introducción a la Computación Patricia Borensztejn Estructura de un programa en C Hello, World Un programa en C consta de funciones y variables.
Más detallesFundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Más detallesProgramación Básica Estructuras de Datos y Funciones en C
Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 8 Universidad de Guanajuato, DCI, Campus León 1 / 33 Contenido 1 Estructuras de Datos
Más detallesEsquema de un programa en C: bloques básicos
Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,
Más detallesFUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial
FUNDAMENTOS DE INFORMÁTICA 1º PRÁCTICA 1: Introducción al entorno de programación Dev-C++ CURSO 2005/2006 División de Ingeniería de Sistemas y Automática ISA-UMH R-00-FI001v1.0 1. Objetivos Los objetivos
Más detallesTema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Más detallesLenguaje C Entrada y Salida de Datos. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Lenguaje C Entrada y Salida de Datos Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia E/S por consola Se refiere a las operaciones que ocurren
Más detallesTipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero
Lenguaje C Tipos de variables Departamento de Electrónica Fundación San Valero Tipos de datos, Cinco tipos de datos básicos: Carácter (char): 8 bits -128 a 127. Entero (int): 32 bits -2.147.483.648 a 2.147.483.647.
Más detallesIntroducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detallesTema 5. Entrada y Salida
Tema 5 Entrada y Salida Contenidos 1. Conceptos Previos de Entrada y Salida de Datos. 2. Funciones de Salida de Datos. putchar puts printf 3. Funciones de Entrada de Datos. getchar gets scanf 4. Ficheros
Más detallesOperaciones de E/S en ANSI C
Operaciones de E/S en ANSI C Las operaciones de entrada/salida estándar (realizadas habitualmente con printf y scanf) se realizan en realidad sobre ficheros que representan los dispositivos mediante los
Más detallesExamen Programación para Sistemas. Grado en Ingeniería Informática (2009)
Apellidos: Nombre: Matrícula: Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Más detallesSEGURIDAD Y ALTA DISPONIBILIDAD
SEGURIDAD Y ALTA DISPONIBILIDAD 1 Nombre: Existen diferentes vulnerabilidades que, dependiendo de sus características, las podemos clasificar e identificar en los siguientes tipos: De configuración: Si
Más detallesTEMA 0 Gestión de Memoria Dinámica
TEMA 0 Gestión de Memoria Dinámica ESTRUCTURAS DE DATOS 1 Objetivos Tema preliminar para entender el uso de la herramienta básica en la gestión de memoria dinámica: punteros Objetivos: Conocer el concepto
Más detallesSistemas Operativos Práctica 3
Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que
Más detallesLenguaje de Programación: C++ ARCHIVOS I/O
UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle
Más detallesIntroducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez
Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez El lenguaje C es: Estructurado Portable. Flexible, veloz y potente. Fácil modificación. Compilado. 2 Algunas características
Más detallesIntroducción a Sistemas Operativos: Comunicación entre Procesos
Introducción a Sistemas Operativos: Comunicación entre Procesos Clips xxx Fr ancisco J Ballesteros. Pipelines Hace tiempo, UNIX disponía de las redirecciones que hemos visto y los usuarios combinaban programas
Más detallesProgramación segura. Seguridad en los Sistemas Informáticos. Ismael Ripoll. Universidad Politècnica de València. Abril 2011
Programación segura Seguridad en los Sistemas Informáticos Ismael Ripoll Universidad Politècnica de València Abril 2011 Ismael Ripoll (Universidad Politècnica de València) Programación segura Abril 2011
Más detallesAbelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 00, Australia Autor principal del curso de 00 a 0 Iria Estévez Ayres Damaris Fuentes Lorenzo
Más detallesIntroducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada.
Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.es Febrero 2008 C 1 C Características: Programación imperativa estructurada. Relativamente de bajo nivel. Lenguaje simple, la funcionalidad está en las
Más detallesProgramación en lenguaje C
1 Introducción UNIVERSIDAD NACIONAL ANDRÉS BELLO Programación en lenguaje C Lenguaje de programación creado en 1972 por Dennis Ritchie, es la evolución del lenguaje de programación B. Linux, kernel del
Más detallesUnidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Más detallesTema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Más detallesSistemas Operativos I Manual de prácticas
Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...
Más detallesTema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas
Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje
Más detallesLex. Lex. Ing. Adrian Ulises Mercado Martínez. Enero 30, Ing. Adrian Ulises Mercado Martínez Lex Enero 30, / 27
Lex Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Lex Enero 30, 2015 1 / 27 1 Lex 2 Compilar con lex 3 Estructura de un programa en lex 4 Expresiones Regulares
Más detallesTipos de Datos. Tipos de Datos Simples Estándar
Departamento de Informática Universidad Técnica Federico Santa María Tipos de Datos Programación de Computadores Profesor: Teddy Alfaro Tipos de Datos Simples Estándar char es un carácter (alfanumérico),
Más detalles