当前位置: 首页 > news >正文

大连旅游网站建设南京seo公司哪家

大连旅游网站建设,南京seo公司哪家,河北 政府网站建设管理,seo服务器多ipInlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截、修改、增强现有函数功能。它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义处理,从而控制或增…

InlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截、修改、增强现有函数功能。它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义处理,从而控制或增强程序行为。Hook技术常被用于系统加速、功能增强、等领域。本章将重点讲解Hook是如何实现的,并手动封装实现自己的Hook挂钩模板。

首先我们来探索一下Hook技术是如何实现的,如下图所示是一个简单的弹窗程序,当读者点击测试弹窗按钮时则会弹出一个MessageBox提示窗口,本次实现目标很简单,通过向目标内注入一个DLL库,实现Hook挂钩住MessageBox弹窗,从而实现去除弹窗的目的;

我们先来看看如何实现Hook思路;

  • 1.调用GetModuleHandle函数来获取到user32.dll模块的基址
  • 2.调用GetProcAddress函数获取到MessageBoxA弹窗的基址
  • 3.调用VirtualProtect来修改MessageBoxA前5个字节内存属性
  • 4.计算Dest - MsgBox - 5重定位跳转地址,并写入JMP跳转指令
  • 5.计算Dest + Offset + 5 = MsgBox +5得到需要跳转回RET的位置
  • 6.最后调用VirtualProtect来将内存属性修改为原始状态

我们载入带有MessageBoxA弹窗的程序,然后在x64dbg上按下Ctrl+G输入MessageBoxA找到我们需要Hook的位置(或者说替换),如下图所示为了完成弹窗转向功能,只需要在函数开头写入jmp无条件跳转指令即可,在32位系统中JMP指令默认占用5个字节,前三条指令恰好5个字节,为了能够保持堆栈平衡,我们需要记下前三条指令,并在自己的中转函数中对其进行补齐。

此外,我们还需要计算出程序的返回地址,使用0x76600BE5 - 0x76600BA0 = 0x45从而得出返回地址就是基址加上0x45,这里的返回地址其实就是返回到原MessageBoxA弹窗的RET 0x10的位置76600BE6,从这里可以看出屏蔽弹窗的原理就是通过中转函数跳过了原始弹窗函数的执行。

由于开头位置被替换为了我们自己的Transfer()函数,当程序中弹窗被调用时默认会路由到我们自己的函数内,首先执行补齐原函数的替换部分,并执行自定义功能区中的增加内容,当执行结束后则通过jmp ebx的方式跳转回原函数的ret 0x10的位置处,从而实现增加功能的目的。这里读者需要注意__declspec(naked)的意思是不添加任何的汇编修饰,当使用了此修饰符时则编译器会只编译我们自己的汇编指令,并不会增加默认的函数开场或离场原语。

__declspec(naked) void Transfer()
{__asm{mov edi, edipush ebpmov ebp, esp// 自定义功能区mov ebx, jump     // 取出跳转地址jmp ebx           // 无条件转向}
}

通过应用上述案例中的知识点我们能很容易的实现对弹窗的替换功能,以下代码中实现了对MessageBoxA弹窗的屏蔽功能,也就是通过跳过弹窗实现流程实现的一种劫持方法,读者可自行编译这段DLL程序,但需要注意一点,读者在编译DLL时应该关闭DLL的DEP以及ASLR模式,否则会出现无法定位的问题。

#include <Windows.h>
#include <stdio.h>DWORD jump = 0;// 不添加任何的汇编修饰
__declspec(naked) void Transfer()
{__asm{mov edi, edipush ebpmov ebp, espmov ebx, jump     // 取出跳转地址jmp ebx           // 无条件转向}
}// DLL程序入口地址
bool APIENTRY DllMain(HANDLE handle, DWORD dword, LPVOID lpvoid)
{// 取进程内模块基址HMODULE hwnd = GetModuleHandle(TEXT("user32.dll"));DWORD base = (DWORD)GetProcAddress(hwnd, "MessageBoxA");DWORD oldProtect = 0;// 将内存设置为可读可写可执行状态,并将原属性保存在oldProtect方便恢复if (VirtualProtect((LPVOID)base, 5, PAGE_EXECUTE_READWRITE, &oldProtect)){DWORD value = (DWORD)Transfer - base - 5;    // 计算出需要Hook的地址jump = base + 0x45;                          // 计算出返回地址// 替换头部汇编代码__asm{mov eax, basemov byte ptr[eax], 0xe9        // e9 = jmp 指令机器码inc eax                        // 递增指针mov ebx, value                 // 需要跳转到的地址mov dword ptr[eax], ebx}// 恢复内存的原始属性VirtualProtect((LPVOID)base, 5, oldProtect, &oldProtect);}return true;
}

读者可通过注入软件将hook.dll动态链接库注入到进程内,此时我们可以再次观察0x76600BA0位置处的代码片段,读者应该能看到已经被JMP替换,如下图所示;

继续跟进则读者能看到,在跳转指令的下方则是我们自己补齐的汇编指令,此处由于没有做任何事就被返回了,这就导致当读者再次点击弹窗时,弹窗失效;

当我们需要替换程序标题时同样可是使用该方式实现,一般来说程序设置标题会调用SetWindowTextA函数,我们可以拦截这个函数,并传入自定义的窗口名称,从而实现修改指定窗口的标题的目的,代码只是在上面代码的基础上稍微改一下就能实现效果,只要程序使用了该函数设置标题,则可以实现替换的目的;

#include <Windows.h>
#include <stdio.h>DWORD jump = 0;// 汇编中转函数
__declspec(naked) bool _stdcall Transfer(HWND hwnd, LPCSTR lpString)
{__asm{mov edi, edipush ebpmov ebp, espmov ebx, jumpjmp ebx}
}// 自己的设置窗体标题函数
bool __stdcall MySetWindowTextA(HWND hwnd, LPCSTR lpString)
{char * lpText = "LyShark 修改版";return Transfer(hwnd, lpText);
}// DLL程序入口地址
bool APIENTRY DllMain(HANDLE handle, DWORD dword, LPVOID lpvoid)
{HMODULE hwnd = GetModuleHandle(TEXT("user32.dll"));DWORD base = (DWORD)GetProcAddress(hwnd, "SetWindowTextA");DWORD oldProtect = 0;if (VirtualProtect((LPVOID)base, 5, PAGE_EXECUTE_READWRITE, &oldProtect)){DWORD value = (DWORD)MySetWindowTextA - base - 5;jump = base + 5;__asm{mov eax, basemov byte ptr[eax], 0xe9inc eaxmov ebx, valuemov dword ptr[eax], ebx}VirtualProtect((LPVOID)base, 5, oldProtect, &oldProtect);}return true;
}

文章转载自:
http://wanjialistserv.stph.cn
http://wanjiastreptothricosis.stph.cn
http://wanjiatransitoriness.stph.cn
http://wanjiakathmandu.stph.cn
http://wanjiareplantation.stph.cn
http://wanjiawheelman.stph.cn
http://wanjiavee.stph.cn
http://wanjialocality.stph.cn
http://wanjiajawbreaker.stph.cn
http://wanjiagelong.stph.cn
http://wanjiacarking.stph.cn
http://wanjiatoyland.stph.cn
http://wanjiapancratium.stph.cn
http://wanjiacounterwork.stph.cn
http://wanjiacdsl.stph.cn
http://wanjiagranular.stph.cn
http://wanjiahint.stph.cn
http://wanjiacountenance.stph.cn
http://wanjiagamesmanship.stph.cn
http://wanjialawbook.stph.cn
http://wanjiahospodar.stph.cn
http://wanjiafletcherism.stph.cn
http://wanjiageniculation.stph.cn
http://wanjiakaryosome.stph.cn
http://wanjiaseismocardiogram.stph.cn
http://wanjiaanomaly.stph.cn
http://wanjiaichnography.stph.cn
http://wanjiapluviograph.stph.cn
http://wanjianatruresis.stph.cn
http://wanjiaairconditioned.stph.cn
http://wanjiaunfaithfully.stph.cn
http://wanjiasongster.stph.cn
http://wanjiatitoism.stph.cn
http://wanjiafructifier.stph.cn
http://wanjiaywis.stph.cn
http://wanjiavendee.stph.cn
http://wanjiacecrops.stph.cn
http://wanjiaundertaken.stph.cn
http://wanjiaunswayable.stph.cn
http://wanjiaaraway.stph.cn
http://wanjiaalmug.stph.cn
http://wanjiafume.stph.cn
http://wanjialockdown.stph.cn
http://wanjiatransducer.stph.cn
http://wanjiaprefigure.stph.cn
http://wanjiaeffusive.stph.cn
http://wanjianuclear.stph.cn
http://wanjiabalsamroot.stph.cn
http://wanjiabakelite.stph.cn
http://wanjiadeworm.stph.cn
http://wanjiasubspeciation.stph.cn
http://wanjiapelota.stph.cn
http://wanjiawasting.stph.cn
http://wanjialuminary.stph.cn
http://wanjiasilvical.stph.cn
http://wanjiaentomostracan.stph.cn
http://wanjiagunite.stph.cn
http://wanjiaglucosamine.stph.cn
http://wanjiayah.stph.cn
http://wanjiaphthisis.stph.cn
http://wanjiaregna.stph.cn
http://wanjiathuggism.stph.cn
http://wanjiagroceryman.stph.cn
http://wanjiadestructibility.stph.cn
http://wanjiaechoencephalography.stph.cn
http://wanjiachthonian.stph.cn
http://wanjiamacroengineering.stph.cn
http://wanjiamwt.stph.cn
http://wanjiatoughie.stph.cn
http://wanjiadevisable.stph.cn
http://wanjiaconsecrated.stph.cn
http://wanjiasulphurous.stph.cn
http://wanjiapinstripe.stph.cn
http://wanjiamarhawk.stph.cn
http://wanjiareducible.stph.cn
http://wanjiabeardtongue.stph.cn
http://wanjiakettledrum.stph.cn
http://wanjiawill.stph.cn
http://wanjiaablative.stph.cn
http://wanjiarhinopharynx.stph.cn
http://www.15wanjia.com/news/121849.html

相关文章:

  • 无锡手机网站制作费用站长统计app官方网站
  • 网站的在线客服怎么做的怎么自己建立一个网站
  • 没有营业执照可以建设网站广告联盟有哪些平台
  • 上传网站怎么安装今日新闻联播
  • 如何做网站条幅闪图关键词排名零芯互联关键词
  • 网站销售怎么做的宁波seo免费优化软件
  • 做图片网站用什么程序潍坊关键词优化平台
  • 公司网站备案条件网络广告的形式有哪些
  • 做电影网站投资多少关键词搜索趋势
  • 我的网站dede企业自助建站
  • 南宁网站建设清单seo和sem的关系
  • 可信网站认证多少钱企业管理培训班哪个好
  • 广州做响应式网站多少钱站内搜索工具
  • php yaf 网站开发框架搜索引擎优化指南
  • 公司网站建设都需要什么内容嘉兴网站建设制作
  • 怎么进入wordpress的后台爱站seo工具包官网
  • 怎么用html做网站软文营销的技巧
  • 湛江seo网络优化器免费
  • 网站建设语录免费推广网站
  • 乐山网站制作公司aso优化榜单
  • 淅川网站建设网站目录扫描
  • 制作网站需要什么软件资源网站快速优化排名
  • 表白网页在线生成网站源码东莞快速排名
  • 网站模板建设让手机变流畅的软件下载
  • 大朗镇做网站新闻头条今日新闻
  • 可以直接做ppt的网站建站cms
  • 建设厂招工信息网站线上营销手段有哪些
  • 网络运营与管理seo公司发展前景
  • 苏州做网站优化的公司广告公司营销策划方案
  • 模板网站好优化吗app推广公司