hola tengo una duda, como puedo mover 66 C7 05 5B F0 45 00 EB 12 (9bytes con mov), solo conozco word y dword
Saludos
lea esi, offset strOrigen
lea edi, offset strDestino
mov ecx, 9
cld
repe movsb
Intel tiene toda la documentación de los mnemónicos te recomiendo a que la leas, si no puedes usar el *.chm que viene con la instalación del masm32 (si lo tienes), o si no, el tuto de Caos Reptante( Sí ese que usa cita Ricardo muchas veces).
Nox
conocía esa forma era por si encontraba algo que ocupara menos espacio
Saludos
puedes usar
Lodsb
Scasb
Stosb
o simplemente
mov eax, dword ptr [ebx]
add eax, 4
mov eax, dword ptr [ebx + 4]
add eax, 4
mov eax, byte ptr [ebx + 8]
Pero como veras lo último no es para nada eficiente.
Nox.
Gracias por la info Nox :D
Saludos bro :D
no se si sera mas breve, pero si en puro mov seria algo asi:
como los antiguos inline:
mov prt dword direcciondestino,primeros4dword_origen //
mov prt dword direcciondestino+4,siguientes4dword_origen
mov prt byte direcciondestino+4+4,siguentebyte_origen
no tengo olly a mano, pero deberia trabajar asi en forma similar a lo ya comentado
porque no recuerdo que trabajen en todos los formatos con QWORD
si es por script, bastaria un mov con los bytes en ## , o bien usar el comando fill antes para nopear el lugar
saludos Apuromafo
gracias efectivamente es para un inline patch necesitaba disminuir espacio pero nada mejor que mover un JMP SHORT y desde la nueva dirección trabajar sin problemas con el espacio suficiente.
Saludos
Cita de: .:UND3R:. en 6 Octubre 2011, 18:44 PM
gracias efectivamente es para un inline patch necesitaba disminuir espacio pero nada mejor que mover un JMP SHORT y desde la nueva dirección trabajar sin problemas con el espacio suficiente.
Saludos
si es asi entonces puedes usar facilmente el multimate assembler, luego con topo o sectino adder, o alguna nueva sección puedes moverte facilmente en caso x,
solo requiere algunos calculos extras en caso x
genial, saludos Apuromafo