Es decir como convertir una cadena de texto que representa numeros hexadecimales a su valor real , este codigo acepta cualquiera de las formas Ej
"x\09x\82\x76"
"0x68, 0x6F, 0x6C, 0x61, 0x20"
incluso una mescla de ellas EJ>
Código
"0x68, 0x6F,\x55\x8B\xEC\x32\xD2\x83\xEC\x10\xC6\x45\xF1\x63\xC6\x45\xF2\x61" ahex2hex Proc datos:dword,destino:dword,long:dword mov edx,[datos] repetimos: xor eax,eax mov ecx,2 mmmms: mov al,byte ptr ds:[ecx+edx-1] ;;;;;;;;;;;;;;;;;;;;Plugin para ignorar caracteres (ignore "space" "x" "," "\r\n" "\" "/") ;;;; This is a plugin , you can delete. cmp al,020h ; El espacio , de encontrarse se ignora jnz noespace jmp finmal noespace: cmp al,02Ch ; La "," jnz nocoma jmp finmal nocoma: cmp al,078h ; The "x" jnz noequis jmp finmal noequis: ;Chequeamos si hay una nueva linea , Now we check for newline (for windows) cmp al,05Ch ; The "\" jnz barra jmp finmal barra: cmp al,02Fh ; The "/" jnz newline jmp finmal newline: cmp al,00Dh ; The "\r" jnz noreturn jmp finmal noreturn: cmp al,00Ah ; The "\n" jnz googC finmal: inc edx jmp repetimos ; Repetimos ;;;;;;;;;;;;;;;;;;;;;;Plugin -para ignorar caracteres (-to ignore some chars) googC: sub al,041h jc negativo; Si es menor que CERO add al,0Ah jmp positivo negativo: ; Le sumamos 17 add al,011h positivo: ; Si es positivo , solo lo corremos shl eax,8 loop mmmms ;;;; Arreglo final (ver en un Dbugger) shr eax,8 xchg al,ah shl al,4 shr eax,4 ;;;;;;;;;;;;;; mov ecx,dword ptr ds:[destino] mov [ecx],al dec long jz salimos inc edx inc edx inc dword ptr ds:[destino] jmp repetimos salimos: ret ahex2hex endp
Cualquier duda me dicen !!.