Feda /dev/

pineda

#15533 desde python jamás lo hice, pero que problema tienes?

https://msdn.microsoft.com/es-es/library/windows/desktop/ms680553(v=vs.85).aspx

La definición es esta:

BOOL WINAPI ReadProcessMemory(
  _In_  HANDLE  hProcess,
  _In_  LPCVOID lpBaseAddress,
  _Out_ LPVOID  lpBuffer,
  _In_  SIZE_T  nSize,
  _Out_ SIZE_T  *lpNumberOfBytesRead
);

básicamente, atributo por atributo:
hProcess: el handler del proceso. Lo consigues previo "OpenProcess"
lpBaseAddress: desde donde empiezas a leer. Memoria absoluta
lpBuffer: donde escribirá la respuesta. Para generalizar, pasale un puntero a un array de bytes
nSize: cuan' mucho leerá.
lpNumberOfBytesRead: aquí escribirá la respuesta del número de bytes que ha leido. Esto digamos que es más opcional

Si te vienes al lado oscuro de golang sería algo así


var (
	kernel32                     = syscall.MustLoadDLL("kernel32.dll")
	procReadProcessMemory        = kernel32.MustFindProc("ReadProcessMemory")
)

func readMemory(hProcess uintptr, lpBaseAddress, nSize uintptr) []byte {
	var data []byte = make([]byte, nSize)
	var length uint32

procReadProcessMemory.Call(hProcess, lpBaseAddress,
	uintptr(unsafe.Pointer(&data[0])),
	nSize, uintptr(unsafe.Pointer(&length))) // read 2 bytes

return data
}
1 respuesta
AikonCWD

#15541 Estoy siguiendo este ejemplo: https://stackoverflow.com/questions/1794579/how-can-i-read-the-memory-of-another-process-in-python-in-windows

Y me peta en la línea: buffer = c_char_p("The data goes here")

1 respuesta
Kaiserlau

#15542 que fallo te da?

1 respuesta
AikonCWD

#15543

1 respuesta
pineda

#15544 prueba con algo parecido a esto

buffer_size = 1000
buffer = ctypes.create_string_buffer(buffer_size)

y si te va, mirate https://docs.python.org/3/library/ctypes.html#ctypes.create_string_buffer

1 1 respuesta
AikonCWD

#15545 Ahora sí, gracias!

El ejemplo que estaba siguiendo en stackoverflow estaba mal ¿? Ahora a ver como parseo esta mierda.

1 respuesta
pineda

#15546 desconozco como se hace en python, quizás usando la función create_unicode_buffer() ?
https://docs.python.org/3/library/ctypes.html#ctypes.create_unicode_buffer

de todos modos, busca forma de leerlo con un array de bytes puro, y será mejor para jugar con ello

edit: quizás con

bytearray([])

? lo desconozco, no soy amigo de python

1 respuesta
afhn

Tengo en juego las notas de dos compañeros de clase. Me ha tocado hacer un trabajo grupal y estoy tirando del carro yo sólo prácticamente. El trabajo lo he hecho sólo, y como me asignaron líder tengo en mis manos los porcentajes y puedo hacerles suspender el trabajo. Que haríais? Les daríais el porcentaje mínimo para que no suspendan o les haríais suspender por tener 0 implicación?

Después de acabar el trabajo creo que no voy a volver a tocar JS en mi puta vida, cómo puede dar tanto asco?

4 respuestas
eondev

Ni puta idea pero.. Donde pone the data is here no tendrías que poner un valor? XD

2 respuestas
pineda

#15549 no, es el buffer de salida. Ese buffer te lo rellenará windows cuando lea lo que le estas pidiendo

1
CarlosML27

#15548 La verdad, para mí depende de varios factores. ¿No han hecho nada porque no les ha salido de los cojones o por otros motivos de importancia? Para mí no es lo mismo no hacer nada por jugar al CSGO que por estudiar un examen importante que yo no tenga por ejemplo.

1 respuesta
AikonCWD

#15549 Nah, ya está. Estaba usando c_char_p en lugar de create_string_buffer, no entiendo porqué coño ponen c_char_p en el ejemplo de SO.
#15547 La salida la accedo con buffer.raw, supongo que un simple for y podré parsear los bytes de salida.

1 respuesta
Overburden

#15536 Ese punto en concreto simplemente pq me parece más caótico y creo que eso no cumple la encapsulación, sin embargo supongo que así será más flexible y se usará en algún caso que ahora mismo no imagino. De todas formas no quería ser tan literal, simplemente ese punto en concreto no me gusta pero tampoco quiero hacer un drama xD

pineda

#15552 si. Fijo. Después ya sabes, depende del valor que quieras leer, si es float32 / int / o lo que sea tendrás que parsearlo de distinto modo, con el tema de los littleendian / bigendian

edit de nuevo,
ayer estuve jugueteando bastante con el IDA, y conseguí sacar offsets chulos y la SDK casi completa del battalion 1944 ese, jujuju!

1 respuesta
AikonCWD

#15554 Mucho más sencillo, lo tengo que parsear como bytes, de uno en uno. Es para printar el layout del buscamonas por pantalla.

1 respuesta
afhn

#15551 Si fuese por jugar y porque no les saliese de los cojones ya habría hablado con la profesora y dicho de hacer una entrega en solitario. Pero no sé, se planteó una idea que ninguno de los dos podían hacerse cargo que, mientras yo me buscaba las habichuelas por internet y usando las mañanas y las noches para picar código, ellos se quedaban estancados e invirtiendo el tiempo mínimo, que en verdad les entiendo, van mal en las asignaturas y me ha tocado cargar con 2 personas que es probable que repitan curso, probablemente para que les ayude a aprobar el trabajo y que no suspendan ya que uno de ellos si suspende este trabajo se va a la mierda xd. Uno de ellos por lo menos estaba más preocupado por las prácticas que por acabar el trabajo.
No sé.

1 respuesta
pineda

#15555 y con eso podrás hacer un cliente web del buscaminas con varios frameworks de javascript!

2
kas

Yo me estoy haciendo mi propio analizador de log files, para tener la info que nos envian con los bugs de manera mas visual, en C#, WPF y SQLite:

3 1 respuesta
Merkury

#15548 Si te has comido el trabajo tu solo y no han hecho una mierda porque no les ha salido de las narices, yo hablaria con el profesor y le explicaria de antemano que les vas a clavar un 0% para que sepa lo que hay.

Acabo de leer #15556 , vamos que no les ha salido de las pelotas echarle horas y esfuerzo, yo los mandaria a la mierda.

1 respuesta
Lecherito

#15558 No se entiende un cagao en los graficos nen

1 respuesta
afhn

#15559 en realidad algo sí que han hecho, uno me buscó la información necesaria sobre la temática del trabajo, y el otro me está haciendo la maqueta y la plantilla que había que hacer sobre el trabajo ahorrándome la tediosa tarea que se me había olvidado comentarlo, mb (aunque eso lo hubiese hecho yo en 4 horas y no en 2 semanas de trabajo que llevamos), pero no sé si en comparación realmente se merezcan algo de merito;

y además me falta revisar el código que me gustaría después subir el archivo por si alguien le podría echar un vistazo y decirme que cosas cambiaría.

kas

#15560 Porque no sabes lo que estoy ploteando :) Que en parte ya es eso, no qiero disclose mucha info.

1 respuesta
Lecherito

#15562 Sigo pensando que no se entienden una mierda. Trabajo con graficos y lo ultimo que quieres es que sean tan ofuscados como esos xd

1 respuesta
kas

#15563 a pero yo tengo zoom!

Basicamente todo lo que esté por encima de la linea amarilla es potencialmente mal, los colores de fondo son el estado del server.

Algunos dias no tienen estado "verde", por lo que pueden ser ignorados. Cuando abres un log file de 6 millones de lineas, algo así no es tan facil de ver rapidamente.

Ademas en algunos de los charts se puede ver como esas lineas de latency pasan de los 20ms a 5s poco a poco. Eso es normalmente un indicador de que el sistema esta sobrecargado: demasiadas transacciones al HD, demasiado consumo de CPU que puede indicar que esta paginando a saco porque se ha quedad sin memoria por memory leaks, o que el Garbage Collector va loco, ... es bastante util.

1 respuesta
Lecherito

#15564 El mio tambien soporta zoom!

1
AikonCWD

Bieeeen, ya me sale como quiero:

Ahora ha ponerle colorines.

2 respuestas
HelThunk

#15548 Me ha tocado estar en tu situación en varias ocasiones, te cuento lo que yo hago.

1- Si la nota se divide entre todo el grupo, me pongo un 10 y el resto lo divido entre los demás vagos del grupo.
2- Si la nota no se divide, nos pongo a todos un 10, si el profesor pone objeción, bajo la nota del resto.

PD: Siempre y cuando no hayan trabajado, si han trabajado (aun que sea muy poco), voy subiendo sus notas y bajando la mía, etc
PD2: También suelo tener en cuenta la situación personal de cada persona, en plan , tengo compañeros que están hasta los huevos del ciclo, y que solo siguen aquí por que les hace de puente para lo que realmente quieren, esas personas por lo general no pongo menos de un 5, por que se que es una gran putada (aunque esto no justifica que no hagan nada, pero meh)
PD3: Siempre me quejo (y me quejare) a los profesores de este sistema de evaluación, los que tienen que poner la nota son ellos y no nosotros.

1 respuesta
afhn

#15567

Siempre me quejo (y me quejare) a los profesores de este sistema de evaluación, los que tienen que poner la nota son ellos y no nosotros.

Es una putada porque por ejemplo si es alguien con el que te llevas bien ponerle una nota baja pues... te compromete.

Y creo que voy a hacer eso, partiré de un 12,5 que es lo necesario para aprobar, menos = suspenso, e iré subiéndolo en proporción a lo que hallan hecho, y el resto para mi xd.

B

#15548 Depende, si eres un tirillas reparte la nota, si mides 2 metros suspéndelos y si se quejan le das en todo el cielo de la boca.

1 1 respuesta
Merkury

#15569 Y si eres un tirillas, extintor a la cabeza y fuera.

Yo lo de hacer grupos con gente random es lo que mas odiaba de las pocas veces que paso en la carrera solo una los compañeros fueron de listos (mas o menos hicieron lo mismo que tus compañeros) y se comieron el suspender.

Tema cerrado