elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 [130] 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 ... 456
1291  Sistemas Operativos / GNU/Linux / Re: Como buscar un Integer en la memoria de forma manual? en: 26 Abril 2015, 02:08 am
Bueno, finalmente veo que tiene una estructura ya mas definida cada bloque de memoria.

Finalmente me estoy guiando por el mismo proyecto de scanmem
https://github.com/scanmem/scanmem

Igual gracias de todas maneras.

Saludos.
1292  Sistemas Operativos / GNU/Linux / Re: Como buscar un Integer en la memoria de forma manual? en: 26 Abril 2015, 01:47 am
Bueno, fue un error mio, usé mal el substr, puse el valor final en ves de la cantidad de bytes y también me equivoqué al restar inicio con final, era final con inicio xD

Ahora si funciona de lujo :D
Código:
<?php
if(!isset($argv[1])){
echo "Uso: sudo php read.php PID\n";
exit;
}

$regiones = array("misc", "code", "exe", "heap", "stack");

$map = '/proc/'.$argv[1].'/maps';
echo "Leyendo ".$map." ...\n";
$lines = file($map);

foreach($lines as $line){
$line = trim($line);
$separator = substr($line, 12, 1);

if((string)$separator !== '-')
continue;

$mode = substr($line, 26, 4);
/*
r = read
w = write
x = execute
s = shared
p = private (copy on write)
*/

$start = substr($line, 0, 12);
$end = substr($line, 13, 12);
$length = (hexdec($end) - hexdec($start));
$mem = file_get_contents('/proc/'.$argv[1].'/mem', NULL, NULL, hexdec($start), $length);
/*if(strpos($mem, "testdisk.log") !== false){
//echo substr($mem, strpos($mem, "testdisk.log"), 100)."\n";
echo $mem;
exit;
}
$cmd = substr($mem, 0, 512);*/

//if($length < 2048){

echo
"------------------------------------------\n".
"Start     : ".$start." (".hexdec($start).")\n".
"End       : ".$end." (".hexdec($end).")\n".
"Length    : ".$length."\n".
"Mode      : ".$mode."\n".
//"Mem (15)  : ".$mem."\n";
"Mem (15)  : ".bin2hex(substr($mem, 0, 15))."\n";
//}
}

Ahora mi pregunta es:

Tengo una serie de bytes, si quiero buscar un valor entero (Int32) debo convertir los bytes a int32?
1293  Sistemas Operativos / GNU/Linux / Re: Como buscar un Integer en la memoria de forma manual? en: 26 Abril 2015, 01:41 am
Bueno, leyendo algunos documentos oficiales sobre la estructura de estos archivos hice este pequeño script para leer la memoria de una aplicación a traves de su pid:

Código
  1. <?php
  2. $map = '/proc/'.$argv[1].'/maps';
  3. echo "Leyendo ".$map." ...\n";
  4. $lines = file($map);
  5.  
  6. foreach($lines as $line){
  7. $line = trim($line);
  8.  
  9. $mode = substr($line, 26, 4);
  10. $start = hexdec(substr($line, 0, 12));
  11. $end = hexdec(substr($line, 14, 25));
  12. $length = $start - $end;
  13. echo "Start: ".$start."  End: ".$end."  Mode: ".$mode."\n";
  14. $mem = file_get_contents('/proc/'.$argv[1].'/mem', NULL, NULL, $start, $length);
  15. echo $length." ------------\n".$mem."\n------------\n";
  16. }

Comprendiendo que los primeros dos valores de cada línea es la posición en hexadecimal de los bytes que se alojan en el archivo /proc/pid/mem, el problema es que parece que lo estoy haciendo mal ya que al convertir el valor hexadecimal a decimal me arroja un error exageradamente elevado:

Citar
7ffd9c73b000-7ffd9c73d000 r--p 00000000 00:00 0                          [vvar]

Código:
------------
Start: 140727228280832  End: 7.5513797076684E+22  Mode: r--p
PHP Warning:  file_get_contents(/proc/3385/mem): failed to open stream: Permission denied in /home/whk/Escritorio/read.php on line 14
-7.5513796935957E+22 ------------

Algo estoy haciendo mal :-/
1294  Sistemas Operativos / GNU/Linux / Como buscar un Integer en la memoria de forma manual? en: 26 Abril 2015, 00:17 am
Hola, actualmente para buscar valores en la memoria y modificarlos utilizaba la herramienta scanmem y quiero hacer una gui que haga lo mismo pero sin utilizar el binario :)

Se que suena raro pero en la práctica estoy utilizando ARM y es muy dificil encontrar un binario compatible debido a los sistemas de protección del dispositivo pero tengo acceso desde el terminal a leer y escribir los archivos /proc/pid/maps.

Se que en ese lugar se aloja la memoria de cada aplicación y me gustaría hacer una app gráfica capaz de leer y escribir los valores de memoria. Solo necesito manipular enteros de 32 bits.

Alguien me da una mano sobre la estructura de estos archivos y donde buscar estos valores?
1295  Seguridad Informática / Seguridad / Re: [Sistema de seguridad]Netbook entregadas por el gobierno. en: 22 Abril 2015, 21:13 pm
Uniendo dos pines del chip de bloqueo se anula el sistema de bloqueo y arranca la bios directamente sin sistema de protección :)


.

.
De todas maneras por lo que averigue hay ciertos modelos que vienen con el chip en otro lado cubierto con una superficie de goma y otros donde debes soldar un diodo, pero por lo menos los videos de arriba son para la mayoría de los modelos conocidos.



1296  Foros Generales / Noticias / Re: Una página española de venta de recetas desata la ira de farmacéuticos y médicos en: 21 Abril 2015, 17:57 pm
Yo no lo encuentro poco ético, por lo contrario, ayuda a las personas que no tienen los recursos para pagar una clínica de prestigio.

Poco ético serán las personas que prefieren que los demás se endeuden con tal de su beneficio propio a costa de las necesidades y enfermedades.

Los médicos deberían trabajar como voluntarios y los bomberos deberían trabajar con el suelo de un médico.
1297  Programación / Java / Re: Array Bidimensional de objetos en: 21 Abril 2015, 15:07 pm
No importa qué es más cómodo, si no lo que mejor se adapte al proyecto. Yo cuando trabajo, siempre uso JSON o JAXB/Jackson cuando quiero transportar entidades y ésto es mucho más cómodo. Envías una entidad de microservicio a microservicio o mediante peticiones y ésta llega íntegra al destino, ya no necesitas estar convirtiendo de JSON a entidad. Un HashMap también es serializable por cierto.

Hay que usar siempre lo que mejor se adapte a las necesidades. Para casos sencillos como éste, no le veo mucho sentido usar JSON ya que no se va a trabajar con peticiones, si no que será estático, se está simulando una BBDD.

Saludos.

No, no está simulando una db, ese tipo de clases se llaman parcelables o serialización (método get, set) y sirven para ser transportados de manera nativa entre dos aplicaciones o capas, mantener orden y estándard:
http://www.discoduroderoer.es/metodos-get-y-set-en-java/

En .net el método { get; set; } se realiza de manera automática y ya viene con definiciones por defecto salvo que hagas get y set personalizados (útiles cuando necesitas realizar calculos cada ves que se guarda u obtiene un dato como por ejemplo obtener el sexo de una persona cuando solo tienes el valor booleano si es hombre o no o valor nulo).

El tema principal es que no entiendo la lógica del proyecto.
1298  Programación / Java / Re: Array Bidimensional de objetos en: 21 Abril 2015, 14:59 pm
Acabo de compilar tu código y Gus Garsaky tiene razón, intentas pedir datos en una función y replicas en otras y luego sumas los ids no se para que, está bien raro el código. Podrías explicarnos de que se trata como para poder ayudar a corregirlo?
1299  Programación / Java / Re: Array Bidimensional de objetos en: 21 Abril 2015, 14:42 pm
Seria algo así pero ahora el problema esta en el ingreso de el 2do cliente al hacer la muestra por pantalla me tira error de los get y set algo esta mal pero no se que desde ya gracias

Copia y pega acá el mensaje de error para tener una referencia mas clara.
1300  Programación / Java / Re: Array Bidimensional de objetos en: 21 Abril 2015, 14:38 pm
A demás de ser mas cómodo el objeto JSON tiene muchas mas propiedades que un HashMap como por ejemplo la posibilidad de ser llevado a otras capas o lenguajes tales como javascript, solicitudes HTTP/POST directas sin tener que utilizar serializaciones ya que jsonobject lo hace de manera nativa, puedes pasarlo como valor serializable como transporte de datos entre capas de modelos y controladores de manera mas efectiva (como por ejemplo la posibilidad de retornar múltiples valores en ves de un solo tipo por función, como en mi caso cuando devuelvo un objeto json con el estado de la solicitud, valores y el id autoincrementable).

Un HashMap a pesar de que también puedes manejar arrays multidimensionales con llaves de tipos no puede ser transportado ni manipulado con tanta facilidad como un objeto json.

En mi caso en un proyecto php las funciones retornan un objeto de tipo array (ya que en php las llaves de los arrays pueden ser objetos como strings) el cual contiene el estado, namespace de error, texto de error y datos solicitados, de esa manera no necesito utilizar variables locales ni almacenar un stack de estados como se hace generalmente y uso una clase de errores para completar el id de estado, namespace y texto el cual puede contener un array de errores como por ejemplo el controlador del login de un acceso a un portal, pueden haber errores como por ejemplo que el campo nick falta o el campo nick y password falta o que le faltó la captcha, etc... entonces encapsulo todo en un ñunico objeto y lo retorno y lo proceso y lo documento dentro de la misma función.

En Java no hago esto xD porque java es mas estructurado pero si cuando necesito crear objetos serializables en el modelo utilizo mucho los valores en jsonobject para poder sincronizarlos con el servidor web desde una aplicación móvil ya que solamente debo serializarlos de manera nativa y enviar y recibir. Afortunadamente el objeto json está disponible en casi todo lenguaje de programación conocido tales como java, javascript, php, .net, etc por lo cual su utilización para mi es muy cómoda cuando se trata de crear un sistema que se deba mantener comunicado con otras capas u otros servicios y te sirve para acostumbrarte a su uso cuando necesites utilizar apis en internet como google maps, cuentas de gmail, apple, twitter, amazon aws, etc.
Páginas: 1 ... 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 [130] 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines