病毒常用方法之移花接木---小小hook
2018-03-13 13:07
351 查看
之前在一些地方看过不少帖子,介绍或总结hook得各种使用,从中收获不少。其中有一个总结,我觉得是很准确的:hook就是改变原程序的执行流程。只不过在使用的场合不同,每个人实现的效果可能存在差异,但实现的思路大同小异。
下面介绍一个dll模块,它通过hook通信的api来实现盗号,看下主要操作的反汇编代码:
下面介绍一个dll模块,它通过hook通信的api来实现盗号,看下主要操作的反汇编代码:
int _stdcall GetFuncAddr(HMODULE hModule,LPCSTR lpModuleName,LPCSTR lpProcName) hModule =dword ptr 8 lpModuleName =dword ptr 0ch ;(传入的实参)wininet(.dll) lpProcName =dword ptr 10h ; HttpSendRequestA/W push ebp mov ebp,esp cmp [ebp+lpModuleName],0 ;模块名是否为空 jz short loc_10001018 push [ebp+lpModuleName] ;lpModuleName call ds:GetModuleHandleA push [ebp+lpProcName] ;函数名 push eax jmp short loc_1000101e loc_10001018: push [ebp+lpProcName] push [ebp+hModule] loc_1000101e: call ds:GetProcAddress ;得到要hook函数的地址 pop ebp retn 0ch GetFuncAddr endp ;得到目标函数的地址之后,接下来就是用精心准备的工作函数取替换。这里是通过改变内存的读写属性来实现的。 4000 lea eax,[ebp+flOldProtect] push eax push 4 ;flNewProtect 4---PAGE_READWRITE push 10h ;dwSize push dword ptr [esi+0ch]; lpAddress 上面获得的函数地址 call ds:VirtualProtect ;由于是dll不能自己主动执行里面的代码,所以它就导出了关键函数供其他进程调用 ;盗号吗?替换的NewHttpSendRequest()会先对发送请求的数据进行检查,如果是感兴趣的网站就将登录信息保存下来,传到指定的邮箱,接下来的任务就还给HttpSendRequest()
相关文章推荐
- 病毒常用方法之注册表操作
- 病毒常用方法之隐身术
- IOS开发疑难杂症排查-常用hook方法
- 病毒常用方法之回到起点---PE文件
- 病毒常用方法之加密
- JQuery常用的方法 让我们看看这个小小的筐架能带来什么
- 中病毒后常用的解决方法病毒终极解决方案
- 病毒常用方法之下蛋
- 病毒常用的方法之同流合污
- 常用的系统HOOK方法
- Aptana常用设置方法
- Java对BigDecimal常用方法的归类
- C#文件的操作类常用方法
- 常用的预测误差计算方法
- grep 正则表达常用方法
- VC常用方法
- [转载]ASP.NET中常用的文件上传下载方法
- 原生js的常用方法整理
- Oracle常用方法备份
- HTTP 两种常用的方法:GET方法与POST方法的比较