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

门户型网站有哪些做网站全自动cpa引流

门户型网站有哪些,做网站全自动cpa引流,联合早报 即时消息,网站建设教程大全 百度网盘HOOK的目的是用我们自己的代码取代一些函数的代码以改变程序的行为。 静态HOOK:在进程运行前挂钩,采用用户级进程即可完成。比如:有些程序会在启动时需要原光盘,如果我们修改获取驱动类型的函数则可以从硬盘启动。 动态HOOK:挂钩系统进程(如服务)时要动态挂钩(运行时挂钩…HOOK的目的是用我们自己的代码取代一些函数的代码以改变程序的行为。 静态HOOK:在进程运行前挂钩,采用用户级进程即可完成。比如:有些程序会在启动时需要原光盘,如果我们修改获取驱动类型的函数则可以从硬盘启动。 动态HOOK:挂钩系统进程(如服务)时要动态挂钩(运行时挂钩)。 静态HOOK即运行前挂钩 这里修改我们想要修改函数来自的物理模块(大多数时候是.exe或.dll)。在这里我们至少有3种可能的做法。 第一种可能是找到函数的入口点然后重写它的代码。这会因为函数的大小而受限制,但只要能动态加载其它一些模块(API LoadLibrary)就足够了。内核函数(kernel32.dll)是通用的,Windows中每个进程都有其拷贝,如果知道哪些模块在某版本中会修改,就可以在一些API如LoadLibraryA中直接使用指针(因为相同Windows版本中kernel模块在内存中地址是固定的)。 第二种可能是在模块中被代替的函数只是原函数的扩展。可以选择修改开始的5个字节(CPU跳转指令长度)为跳转指令或者改写IAT。如果改跳转指令,那么将会改变指令执行流程转为执行我们的代码。如果调用了IAT记录被修改的函数,我们的代码能在调用结束后被执行。 第三种是修改整个模块。即创建自己的模块版本,它能够加载原始的模块并调用原始的函数,当然我们对这个不感兴趣,但重要的函数都是被更新的。这种方法对于有的模块过大有几百个导出函数的很不方便。 动态HOOK即运行时挂钩 在运行前挂钩通常都非常特殊,并且是在内部面向具体的应用程序(或模块)。如果我们更换了kernel32.dll或ntdll.dll里的函数(只在NT操作系统里),我们就能完美地做到在所有将要运行的进程中替换这个函数。但说来容易做起来却非常难,不但得考虑精确性和需要编写比较完善的新函数或新模块,更主要的问题是只有即将运行的进程才能被挂钩(要挂钩所有进程只能重启电脑)。另一个问题是如何进入这些文件,因为NT操作系统保护了它们。比较好的解决方法是在进程运行时挂钩(只针对能够写入它们内存的进程)。为了能写入进程可使用API函数WriteProcessMemory。 使用IAT挂钩本进程 这里有很多种可能性。首先介绍如何用改写IAT挂钩函数的方法。接下来这张图描述了PE文件的结构: 这里比较重要的是.idata部分的导入地址表(IAT:Import Address Table)。这个部分包含了导入的相关信息和函数地址。有一点很重要,我们必须知道PE文件是如何创建的。当在编程语言里间接调用任意API(这意味着我们是用函数的名字来调用它,而不是用它的地址),编译器并不直接把调用连接到模块,而是用jmp指令连接调用到IAT,IAT在系统把进程调入内存时时会由进程载入器填满。这就是我们可以在两个不同版本的Windows里使用相同的二进制代码的原因,虽然模块可能会加载到不同的地址。进程载入器会在程序代码里调用所使用的IAT里填入直接跳转的jmp指令。所以只要能在IAT里找到想要挂钩的指定函数,就能很容易改变那里的jmp指令并重定向代码到新的地址。完成之后每次调用都会执行新的代码了。这种方法的缺点是经常有很多函数要被挂钩(比如:要在搜索文件的API中改变程序的行为就得修改函数FindFirstFile和FindNextFile,但这些函数都有ANSI和UNICODE版本,所以就不得不修改FindFirstFileA、FindFirstFileW、FindNextFileA和FileNextFileW的IAT地址。但还有其它类似的函数如FindFirstFileExA和它的UNICODE版本FindFirstFileExW,也都是由前面提到的函数调用的。我们知道FindFirstFileW调用FindFirstFileExW,但这是直接调用,而不是使用IAT。再比如说ShellAPI的函数SHGetDesktopFolder也会直接调用FindFirstFilwW或FindFirstFileExW)。 我们通过使用imagehlp.dll里的ImageDirectoryEntryToData来很容易地找到IAT。 PVOID ImageDirectoryEntryToData(IN LPVOID Base, IN BOOLEAN MappedAsImage, IN USHORT DirectoryEntry, OUT PULONG Size ); 在这里Base参数可以用我们程序的Instance(Instance通过调用GetModuleHandle获得): hInstance = GetModuleHandleA(NULL); DirectoryEntry我们可以使用恒量IMAGE_DIRECTORY_ENTRY_IMPORT。 #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 函数的结果是指向第一个IAT记录指针。IAT的所有记录是由IMAGE_IMPORT_DESCRIPTOR定义的结构。所以函数结果是指向IMAGE_IMPORT_DESCRIPTOR的指针。 typedef struct _IMAGE_THUNK_DATA {
http://www.dnsts.com.cn/news/32397.html

相关文章:

  • 天津网站建设方案网店装修图片
  • 模仿ios系统的html网站seo推广模式
  • 官方网站免费制作手机端视频网站模板
  • 网站域名空间百度搜索的优势
  • 网站的建设服务中心上海网络推广产品
  • 大足网站建设公司单页的网站怎么做的
  • 珠海服务好的网站建设天津建设工程信息网吧
  • 网站如何做监测链接十大外贸网站
  • 打开网站自动跳转代码个人网站一年多少钱
  • 网站后台工程师百度站长统计
  • 佛山营销网站建设联系方式苏州网站建设企业网站制作
  • 17素材网下载超级优化液
  • 哪个网站是可以做书的造一个官方网站
  • 网站建设讲话稿贵阳公司网站
  • 莆田市建设局网站WordPress 附件上传
  • 高端网站推荐有了域名和空间怎么做网站内容
  • 网站设计成手机手机上如何制作网站
  • 虹口建设机械网站制作营销型企业网站的策划方案
  • 南京 网站开发呼和浩特建设厅网站首页
  • 石家庄网页开发建设网站搜索引擎优化怎么做
  • 如何创建个人网站赚钱开发小程序定制公司
  • 成都建工网站广州seo优化费用
  • 东莞专业网站制作设计网站建设 网页开发
  • 西宁网站建设建站电影购票网站开发背景
  • 公司网站怎么做才能有官网二字企业网站推广的策略有哪些
  • 课程网站建设技术花80亿美元建空间站
  • 做网站定制开发的公司平台设计理念
  • 地图 添加到网站网站的根目录怎么找
  • wordpress老网站重装法设计软件coreldraw
  • 如何优化网站性能百度app