asm的本地Apihook(IAT)

改IAT的apihook, 

第一次用汇编..感觉就像写着批处理另外还要想象内存中代码指令的样子..好纠结啊

		.386
		.model flat, stdcall
		option casemap: none
include 	windows.inc
include 	user32.inc
includelib 	user32.lib
include 	kernel32.inc
includelib 	kernel32.lib
IAT_OPCODE_LEN	equ 6
;JMPOPCODE		struct

;JMPOPCODE		ends
		.data
szCaption	db	'Hello',0
szText		db	'Hello World!',0
szNewText	db	'Bye world!',0

		.code
_HookFunc		proc
;_HookFunc::
		mov [esp+8],offset szNewText

_OrgJmp::
		db 90h,90h,90h,90h,90h,90h
_HookFunc		endp

_WriteMem		proc	_lpAddr,_dwSize,_lpbData ;lpAddr 叫 pvoidAddr比较好
		local @flOrgProtect
		local @flMyProtect
		invoke	VirtualProtect,_lpAddr,_dwSize,PAGE_EXECUTE_READWRITE,addr @flOrgProtect
		invoke	RtlMoveMemory,_lpAddr,_lpbData,_dwSize
		;mov ecx,_dwSize		;counter
		;mov esi,_lpbData	;pBuffer
		;mov edi,_lpAddr		;pWriter
		;rep movs byte ptr es:[edi],byte ptr ds:[esi]
		invoke	VirtualProtect,_lpAddr,_dwSize
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值