wow64 32位进程中切换64位模式,取回64位寄存器值
32位dbg中编辑的:
7711E9D3 | 6A | push |
7711E9D5 | E8 | call ntdll.7711E9DA | call $
7711E9DA | | add dword ptr ss:[esp], |
7711E9DE | CB | ret far |
6A E8 CB 64位dbg中获取的:
00007FFC844B11DD | :B8 | mov rax, |
00007FFC844B11E7 | | push rax |
00007FFC844B11E8 | : | push r8 |
00007FFC844B11EA | : | push r9 |
00007FFC844B11EC <ntdll.LdrpGetProcApphelp | : | push r10 |
00007FFC844B11EE | : | push r11 |
00007FFC844B11F0 | : | push r12 |
00007FFC844B11F2 | : | push r13 |
00007FFC844B11F4 | : | push r14 | r14:"minkernel\\ntdll\\ldrinit.c"
00007FFC844B11F6 | : | push r15 |
00007FFC844B11F8 | | push rax |
00007FFC844B11F9 | E8 | call ntdll.7FFC844B11FE | call $
00007FFC844B11FE | C74424 | mov dword ptr ss:[rsp+], | :'#'
00007FFC844B1206 | 0D | add dword ptr ss:[rsp],D |
00007FFC844B120A | CB | ret far |
00007FFC844B120B | | nop |
B8 E8 C7 0D CB 合成:
7711E9D3 | 6A | push |
7711E9D5 | E8 | call ntdll.7711E9DA | call $
7711E9DA | | add dword ptr ss:[esp], |
7711E9DE | CB | ret far |
7711E9DF | | dec eax |
7711E9E0 | B8 | mov eax, |
7711E9E5 | | inc esp |
7711E9E6 | | xor esp,dword ptr ds:[edx] |
7711E9E8 | | adc dword ptr ds:[eax+],edx |
7711E9EB | | push eax |
7711E9EC | | inc ecx |
7711E9ED | | push ecx |
7711E9EE | | inc ecx |
7711E9EF | | push edx |
7711E9F0 | | inc ecx |
7711E9F1 | | push ebx |
7711E9F2 | | inc ecx |
7711E9F3 <ntdll._LdrpForkProcess@0> | | push esp |
7711E9F4 | | inc ecx |
7711E9F5 | | push ebp |
7711E9F6 | | inc ecx |
7711E9F7 | | push esi |
7711E9F8 | | inc ecx |
7711E9F9 | | push edi | edi:"LdrpInitializeProcess"
7711E9FA | | push eax |
7711E9FB | E8 | call ntdll.7711EA00 | call $
7711EA00 | C74424 | mov dword ptr ss:[esp+], | :'#'
7711EA08 | 0D | add dword ptr ss:[esp],D |
7711EA0C | CB | ret far |
7711EA0D | | nop |
6A E8 CB B8 E8 C7 0D CB 取回来的栈: win10_64
$ ==>
r15
$+ 0000000000A6E940 0000000000A6FDA0
$+ 0000000002C0A000
$+ 00000000770E1FCC
$+ 000000000000002B 取回来的栈: win7_64
$ ==> >
r15
$+ > 0008EC80 0008FD20
$+ > 7EFDB000
$+ > 0018FD10
$+ > 778B01C4
wow64 32位进程中切换64位模式,取回64位寄存器值的更多相关文章
- Wow64(32位进程)注入DLL到64位进程
转载自: https://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/ 向其他进程注入DLL通常的做法是通过调用CreateR ...
- Windows是如何将64位Ntdll映射到32位进程的---转自简书
今天我们探索一个问题: 64位的ntdll是如何被加载到WoW64下的32位进程?今天的旅程将会带领我们进入到Windows内核逻辑中的未知领域,我们将会发现32位进程的内存地址空间是如何被初始化的. ...
- Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储
在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- windows 32位系统中进程最大可用内存空间为3GB (转)
http://msdn.microsoft.com/zh-cn/library/ms189334.aspx 进程地址空间 所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 ...
- 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考
最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的 ...
- 64位进程调用32位dll的解决方法
64位进程调用32位dll的解决方法 最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/ ...
- 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题
最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误 出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source ...
- 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...
随机推荐
- 源码看React 事件机制
对React熟悉的同学都知道,React中的事件机制并不是原生的那一套,事件没有绑定在原生DOM上,发出的事件也是对原生事件的包装.那么这一切是怎么实现的呢? 事件注册 首先还是看我们熟悉的代码 &l ...
- 剑指offer-重构二叉树-树-python
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- Vue之路由跳转 传参 aixos 和cookie
一.路由跳转 1.1 项目的初始化 vue create m-proj >>>创建vue项目 精简vue项目的 views 视图 About(基本是删除的) Home.(可以 ...
- R语言模型选择之精度准则与最大值法问题
在模型选择中我们一般用caret包train函数建立模型,并对模型进行评判 方法1: ) tr_control<-trainControl(method = ) # 创建随机森林模型 model ...
- Qt带参数的信号和槽
在Qt的开发过程中,信号带参数是很常见的,在使用带参数的信号槽时,有以下几点需要注意. 当信号和槽函数的参数数量相同时,它们的参数类型要完全一致. 信号和槽函数的声明: signals: void i ...
- 九、ARM 汇编与 C 的混合编程
9.1 ARM 汇编与 C 的混合编程 9.1.1 内嵌汇编 __asm __asm("指令")例如关闭/打开总中断开关 CPSR __asm //使用 C 中变量名代替寄存器 { ...
- wepy-开发总结(功能点)
开发小程序中,遇到的wepy的几点坑,记录一下; 更详细的项目总结记录请见我的个人博客:https://fanghongliang.github.io/ 1.定时器: 在页面中有需要用到倒计时或者其他 ...
- Angular前端开源框架
1. 项目框架介绍 本项目采用了开源项目ngx-admin作为脚手架.基于Angular 8 +,Bootstrap 4+和Nebular,ngx-admin是最受欢迎的后台管理模板,是用于个人和商 ...
- 6362. 【NOIP2019模拟2019.9.18】数星星
题目描述 题解 一种好想/好写/跑得比**记者还快的做法: 对所有询问排序,按照R递增的顺序来处理 维护每个点最后一次被覆盖的时间,显然当前右端点为R时的答案为所有时间≥L的点的权值之和 LCT随便覆 ...
- 前端面试题常考&必考之--清除浮动的方法
浮动 问题:子元素设置了float后,脱离父元素,导致父元素无法撑开?(也就是子元素的高度没有过渡到父元素) 例子: 检查元素的效果: (三种)常用的解决办法: 1>额外标签法,添加一个空的di ...