dll函数偏移地址获取方式方法

原创 2016年08月28日 16:10:04

最近在做d3d 方面的时候  查询某游戏的dll 偏移的时候 想记录下 


在vs 里面反汇编代码如下 绘制图像 之前很多都是hook

DrawIndexedPrimitive<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">函数进行透视 z缓冲处理</span>

   554: 	g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 24, 0, 12);//利用索引缓存配合顶点缓存绘制图形
0037235C A1 FC 63 37 00       mov         eax,dword ptr ds:[003763FCh]  
00372361 6A 0C                push        0Ch  
00372363 6A 00                push        0  
00372365 6A 18                push        18h  
00372367 8B 08                mov         ecx,dword ptr [eax]  
00372369 6A 00                push        0  
0037236B 6A 00                push        0  
0037236D 6A 04                push        4  
0037236F 50                   push        eax  
00372370 FF 91 48 01 00 00    call        dword ptr [ecx+148h] //我们跟进这个函数 进行定位偏移


下面是F11跟进 00372370 call 里面的代码 
这个就进入 d3d 的
DrawIndexedPrimitive 函数里面了

6F33B6B1 8B FF                mov         edi,edi  
6F33B6B3 55                   push        ebp  
6F33B6B4 8B EC                mov         ebp,esp  
6F33B6B6 6A FF                push        0FFFFFFFFh  
6F33B6B8 68 28 BE 4A 6F       push        6F4ABE28h  
6F33B6BD 64 A1 00 00 00 00    mov         eax,dword ptr fs:[00000000h]  
6F33B6C3 50                   push        eax  
6F33B6C4 83 EC 20             sub         esp,20h  
6F33B6C7 53                   push        ebx  
6F33B6C8 56                   push        esi  
6F33B6C9 57                   push        edi  
6F33B6CA A1 50 92 4B 6F       mov         eax,dword ptr ds:[6F4B9250h]  
6F33B6CF 33 C5                xor         eax,ebp  
6F33B6D1 50                   push        eax  
6F33B6D2 8D 45 F4             lea         eax,[ebp-0Ch]  
6F33B6D5 64 A3 00 00 00 00    mov         dword ptr fs:[00000000h],eax  
6F33B6DB 89 65 F0             mov         dword ptr [ebp-10h],esp  
6F33B6DE 8B 7D 08             mov         edi,dword ptr [ebp+8]  
6F33B6E1 33 DB                xor         ebx,ebx  
6F33B6E3 3B FB                cmp         edi,ebx  
6F33B6E5 0F 84 BA 03 00 00    je          6F33BAA5  

随便一个可以查询dll 基质的工具都可以

配图用的是task explorer



6F33B6B4-6F310000=0x2B6B4 这个就是该函数的基质偏移 


不管dll怎么重定向新的基质 只需要源基质+0x2B6B4 就能直接到达 

DrawIndexedPrimitive 
这个函数

下面图片是找内存加载纹理的函数 经过上面方面的计算 可以直接通过dependency walker这个工具直接获取相应函数的偏移




版权声明:本文为博主原创文章,转载请注明出处

相关文章推荐

LabVIEW CRC校验编程方式方法

  • 2016年01月14日 09:31
  • 11KB
  • 下载

ASP教程,ASP各种方式方法教程

  • 2008年12月27日 18:58
  • 2.88MB
  • 下载

更改powerdesigner的关系Notation的显示方式方法

更改powerdesigner的关系Notation的显示方式方法: 在菜单栏找到Model Option菜单 到 Model Setting面板右边有个notation的下拉列表 默认的是Bar...

MySQL架构设计相关的方式方法和软件介绍

前言 最近,我在学习了解MySQL数据库架构相关的内容,从网上搜索了大量的相关资料和文章,粗粗阅览了一遍,发现架构相关的东西深不可测,需要非常丰富的知识阅历和实践经验。 我的阅历和经验明显不够用,...

int类型转换成字符串和字符串转换成int类型以及在MFC静态文本框显示数字的方式方法

CString temp = L"1234"; int i = _ttoi(temp);//把字符串数字转换成int类型 int temp2=0; temp.Format(L"%...

数据库日常健康检查方式方法

巡检内容 1.    检查数据库基本状况 在本节中主要对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。 1.1. ...

手机棋牌运营方式方法

手机棋牌游戏开发完成后,是直接将产品丢到市场上,还是换种思路去做,成了最近人们口中的热门话题。那么手机棋牌游戏的推广是用以前页游的方式还是其他方式呢?   手游运营模式   按照页游沿用下...

清除浮动的七种方式方法(实例代码讲解)

实例代码(未清除浮动): 清除浮动方法大全 .main div { float: left; width: 200px; height: 200px; margin-ri...

Android创建快捷方式方法的封装

Android创建快捷方式方法的封装 代码: package com.shortcut.util; import com.shortcut.main.R; import android.app.A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dll函数偏移地址获取方式方法
举报原因:
原因补充:

(最多只允许输入30个字)