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位寄存器值的更多相关文章

  1. Wow64(32位进程)注入DLL到64位进程

    转载自: https://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/ 向其他进程注入DLL通常的做法是通过调用CreateR ...

  2. Windows是如何将64位Ntdll映射到32位进程的---转自简书

    今天我们探索一个问题: 64位的ntdll是如何被加载到WoW64下的32位进程?今天的旅程将会带领我们进入到Windows内核逻辑中的未知领域,我们将会发现32位进程的内存地址空间是如何被初始化的. ...

  3. Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储

    在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...

  4. CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决

    Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...

  5. windows 32位系统中进程最大可用内存空间为3GB (转)

    http://msdn.microsoft.com/zh-cn/library/ms189334.aspx 进程地址空间 所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 ...

  6. 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考

    最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的 ...

  7. 64位进程调用32位dll的解决方法

    64位进程调用32位dll的解决方法   最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/ ...

  8. 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

    最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误 出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source ...

  9. 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置

    原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...

随机推荐

  1. 封装 多态 类的约束 super

    python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...

  2. 环境变量和Path环境变量

    环境变量 百度百科下的定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等. 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所 ...

  3. 通过编写串口助手工具学习MFC过程——(七)添加Tab Control控件

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  4. 手写spring事务框架, 揭秘AOP实现原理。

    AOP面向切面编程:主要是通过切面类来提高代码的复用,降低业务代码的耦合性,从而提高开发效率.主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等. AOP实现原理:aop是通过cgli ...

  5. oracle数据库中的存储函数

    oracle中的存储函数,和系统内的函数类似,可以像调用系统函数一样调用存储函数.它与存储过程的唯一区别就是存储过程没有return返回值,存储函数可以与存储过程互换,存储函数可以在存储过程中调用. ...

  6. 史上最全Java学习视频下载地址分享

    http://blog.csdn.net/xlgen157387/article/details/39735141

  7. django基础篇05-Form验证组件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本简单的操作: from django im ...

  8. PAT Basic 1028 人口普查 (20 分)

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  9. 下载zip

  10. 牛客练习赛53E 老瞎眼 pk 小鲜肉(线段树)

    链接:https://ac.nowcoder.com/acm/contest/1114/E来源:牛客网题目:老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一个区间 ...