首页
社区
课程
招聘
分享自己写的反汇编DLL支持16,32,64位代码
发表于: 2014-3-3 11:04 4070

分享自己写的反汇编DLL支持16,32,64位代码

2014-3-3 11:04
4070
指令代码参照书籍:64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf
函数名称及说明
UASMX86   proto codep:LPBYTE,retbuf:Dword,bitx:DWORD,codeaddr:LPDWORD
;;; codep :   [IN]  指向要反汇编的数据                     
;;; retb  :  [OUT] 用于返回反汇编后的指令长度及指令字符串   
;;;     +0:dword 返回汇编指令的长度        
;;;     +4:反汇编后指令字符串
;;; bitx  :   [IN] 取值16,32或者64,指示反汇编代码是16位,32位还是64位的
;;; codeaddr: [IN] 存要汇编数据在程序中的地址[64时,存的必须是64地址] [用于计算转移指令的地址,不是转移指令时,没有用到该指针]

汇编程序的演示代码
; #########################################################################
      .586
      .model flat, stdcall
      option casemap :none   ; case sensitive
; #########################################################################
      include d:\masm32\include\windows.inc
      include d:\MASM32\INCLUDE\masm32.inc
      include d:\masm32\include\user32.inc
      include d:\masm32\include\kernel32.inc
      include codeasm.inc
;     libraries
;     ~~~~~~~~~
      includelib d:\MASM32\LIB\masm32.lib
      includelib d:\masm32\lib\user32.lib
      includelib d:\masm32\lib\kernel32.lib
      includelib codeasm.lib
;======================================================================================================

          .data
szName16  db "16反汇编指令码",0
szName32  db "32反汇编指令码",0
szName64  db "64反汇编指令码",0
msg       db 256 dup(0)
asmtest   db 31h,07ch,08bh,0ch,025h,20h,0h,0h,00,88h,100 dup(90h)
codeaddr  dd 400000h,0
    .code     
start:
    invoke UASMX86,addr asmtest,addr msg,16,addr codeaddr               
                invoke MessageBox,0,ADDR msg[4],ADDR szName16,MB_OK     ;;;显示反汇编的16位代码
    invoke UASMX86,addr asmtest,addr msg,32,addr codeaddr               
                invoke MessageBox,0,ADDR msg[4],ADDR szName32,MB_OK     ;;;显示反汇编的32位代码
    invoke UASMX86,addr asmtest,addr msg,64,addr codeaddr               
                invoke MessageBox,0,ADDR msg[4],ADDR szName64,MB_OK     ;;;显示反汇编的64位代码
                ret
end start

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//