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. [BZOJ 4668]冷战(带边权并查集+启发式合并)

    [BZOJ 4668]冷战(并查集+启发式合并) 题面 一开始有n个点,动态加边,同时查询u,v最早什么时候联通.强制在线 分析 用并查集维护连通性,每个点x还要另外记录tim[x],表示x什么时间与 ...

  2. 只使用非递归的mutex

    mutex分为递归(以下简写为rm)和非递归(以下简写为nrm)两种,它们的唯一区别在于:同一个线程可以重复对rm加锁,但是不能重复对nrm加锁. 虽然rm使用起来要更加方便一些,并且不用考虑一个线程 ...

  3. NoSQL特点

  4. POJ练习计划

    题目链接:https://cn.vjudge.net/article/348 2019/7/24: [POJ-1423] [题解] [POJ-1503] 模板题

  5. 根据日志来源的不同生成不同的index索引

    使用filebeat收集系统日志,不同应用的日志,然后把这些日志传输给Logstash,再然后交由elasticsearch处理,那么如何区分不同的日志来源呢? filebeat.yml配置文件中不启 ...

  6. logstash启动时找不到自定义的JAVA_HOME环境变量

    logstash java 版本问题 配置logstash收集应用日志时出现报错,说是找不到JAVA_HOME环境变量,但是明明已经设置了 logstash要求java 1.8以上,查看生产环境: [ ...

  7. Zookeeper入门概要

    ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集 ...

  8. 可视化缺失值的办法——R语言

    在数据分析中,对缺失值的处理是很关键一步,一般用summary()函数 a<-c(,,,NA) B<-c("a","b","c" ...

  9. num1,随堂笔记(3月10日)

    1.计算机发展史(略) 2.我们所使用的计算机包括了计算机硬件.操作系统和应用程序与网络. 3.计算机硬件构成---CPU(运算器和控制器).内存.硬盘.输入设备和输出设备. ①CPU是计算机的主要计 ...

  10. verilog中的timescale

    `timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真 时的时间单位和时间精度.格式如下: `timescale  仿真时间单位/时间精度 注意:,不能为其它的 ...