调试wow64进程

【kali】生成木马并绑定正常软件实现远控 如果没有则需要进行安装。 阅读详情

当使用64位debugger调试wow64进程时,cpu context默认为64位,这是查看wow64进程调用栈时,会发现只有64位调用栈,而没有32位调用栈,例如查看32位notepad进程在64位Windows上的主线程调用栈:

fffff880`0382b740 fffff800`03eea992: nt!KiSwapContext+0x7a
fffff880`0382b880 fffff800`03ee9eaa: nt!KiCommitThreadWait+0x1d2
fffff880`0382b910 fffff800`041dbccf: nt!KeWaitForMultipleObjects+0x272
fffff880`0382bbd0 fffff800`0420a08d: nt!ObpWaitForMultipleObjects+0x294
fffff880`0382c0a0 fffff800`03ee48d3: nt!NtWaitForMultipleObjects32+0xec
fffff880`0382c2f0 00000000`74cf2e09: nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0382c360)
00000000`0014dd18 00000000`74cf283e: wow64cpu!CpupSyscallStub+0x9
00000000`0014dd20 00000000`74d6d07e: wow64cpu!WaitForMultipleObjects32+0x3b
00000000`0014dde0 00000000`74d68a40: wow64!RunCpuSimulation+0xa
00000000`0014de30 00000000`74d3a154: wow64!Wow64KiUserCallbackDispatcher+0x204
00000000`0014e180 00000000`771e1225: wow64win!whcbClientWaitMessageExMPH+0x58
00000000`0014eb30 00000000`74cf2e09: ntdll!KiUserCallbackDispatcherContinue (TrapFrame @ 00000000`0014e9f8)
00000000`0014eb98 00000000`74cf2dbf: wow64cpu!CpupSyscallStub+0x9
00000000`0014eba0 00000000`74d6d07e: wow64cpu!Thunk0Arg+0x5
00000000`0014ec60 00000000`74d6c549: wow64!RunCpuSimulation+0xa
00000000`0014ecb0 00000000`771d4956: wow64!Wow64LdrpInitialize+0x429
00000000`0014f200 00000000`771d1a17: ntdll!LdrpInitializeProcess+0x17e4
00000000`0014f6f0 00000000`771bc32e: ntdll! ?? ::FNODOBFM::`string'+0x29220
00000000`0014f760 00000000`00000000: ntdll!LdrInitializeThunk+0xe

为了看到32位调用栈,我们必须采用以下步骤:

1. load the wow64exts.dll debugger extension (.load wow64exts)

kd> .load wow64exts

2. 检查当前cpu context是否为64位,若不是,切换至64位 (.effmach amd64)

kd:x86> .effmach amd64
Effective machine: x64 (AMD64)

3. 执行.thread /r /p /w fffffa800a69a910 命令

kd> .thread /r /p /w fffffa800a69a910
Loading User Symbols.....
Loading Wow64 Symbols.........................
x86 context set

4. 查看线程栈 (执行k命令)

kd:x86> k
ChildEBP RetAddr
0022fd34 75f07ebd USER32!NtUserGetMessage+0x15
0022fd50 00b7148a USER32!GetMessageW+0x33
0022fd90 00b716ec notepad!WinMain+0xe6
0022fe20 74db3677 notepad!__mainCRTStartup+0x140
0022fe2c 77199d72 kernel32!BaseThreadInitThunk+0xe
0022fe6c 77199d45 ntdll_77160000!__RtlUserThreadStart+0x70
0022fe84 00000000 ntdll_77160000!_RtlUserThreadStart+0x1b
kd:x86> .effmach amd64
Effective machine: x64 (AMD64)
kd> $ Notice the 32-bit ntdll.dll is loaded into the WOW64 process address space
kd> lmv m ntdll_77160000
Image path: C:\Windows\SysWOW64\ntdll.dll


NOTE:

1. .thread /w command to set the current thread context and load the WOW64 symbols.

2. .thread command needs to be run from the 64-bit thread context in the debugger for it to successfully decode the WOW64 symbols

3. if you ever have to use a 64-bit user-mode debugger to debug a WOW64 process, you can use that command to switch the CPU context as needed so that you can view the 32-bit user-mode stack.



9、深入解析PE加载、进程创建与调试技术 本文深入解析了Windows系统中PE文件的加载过程与进程创建机制,详细介绍了线程环境块(TEB)和进程环境块(PEB)等关键数据结构,并探讨了WOW64子系统在运行32位程序中的作用。文章还系统讲解了调试工具如OllyDbg和x64dbg的使用方法,包括断点设置、程序执行修改、关键信息搜索等技术,为逆向工程和恶意软件分析提供了实用的调试策略和实战案例分析。 阅读详情

相关推荐

x64进程远程hook,x64_远程调用函数,源码更新V1.8.7:2021/4/16-易语言

wow64_hook 源码历史更新 --------------------------------------------------------------- 2021/4/16  模块源码1.8.7 更新: 1:重新架构了穿插汇编指令,优化了一些代码和流程 2:在 远程hook64指令_安装()时新增可回调的3个自定义参数值,这些值在回调接口的[寄存器64.自定义值1;2;3]里可获取到该值 3:修复 寻找无效8字节指令地址()中一个重要BUG,此BUG极大可能导致之前版本在 远程hook64指令_安装()时即导致目标程序崩溃的现象 本次更新比较重要 建议使用者更新到此版本使用............ --------------------------------------------------------------- 2021/4/15  模块源码1.8.6 更新: 1:新增3组函数:X64_取模块代码区起始地址(),X64_取模块入口地址(),X64_取模块代码执行段大小() 2:自定义类型:模块信息64,的成员构成新增改动为 以下,在枚举模块中亦可直接取得 成员 模块基址, 长整数型, , , 模块映像的内存地址 也称为句柄 成员 模块长度, 整数型, , , 整个模块文件长度 成员 模块入口, 长整数型, , , 模块入口函数地址 如 Mian/DllMain 成员 模块代码入口, 长整数型, , , 模块代码执行区起始地址 成员 模块代码长度, 整数型, , , 模块代码执行区的长度 成员 模块名称, 文本型, , , 文件名称 成员 模块路径, 文本型, , , 完整的路径地址 3:新消息接口()远程返回_调用回调子程序()优化了代码严谨性,减少hook目标崩溃的可能性 4:寻找无效8字节指令地址()由之前的全模块查找 改动为 在模块代码执行区查找 5:改写模块实列为 一对多的模式 6:模块实列操作控件的方式由变量改为堆内存,避免引起多线程自身崩溃 7:模块实列 对 recv,recvfrom两个函数的hook方式由原先 在回调内 暂停recv-->recv_call-->恢复recv,的方式改为经过特殊改造的 recv_call,这个call经过特殊处理,在recv回调函数内调用,用来取得真实长度,这个调用会绕过hook位置,所以不会触发 recv回调,详见源码 8:修改了一些已知可能出现的问题 --------------------------------------------------------------- 2021/4/12 模块源码 v1.8.2更新 1:修复 x64_远调用函数()在 易语言 主线程调用时造成消息无法回调,导致易语言主线程窗口卡死的问题。      感谢楼下易友发现的BUG,已经第一时间更新 --------------------------------------------------------------- 2021/4/12 模块源码 v1.8.1更新 1:修复 hook全部卸载时的流程写法的一个错误,由于句柄的提前关闭导致多个hook点卸载不干净的问题 2:改写了消息回调时线程传参的代码优化,优化了其他一些小问题 3:  鉴于很多朋友需要,改写了模块自带实列,对TCP,UDP的两组封包函数做了hook实列写法 4:列子中同样增加对x64_远调用函数()的应用写了几个列子,如使用套接字取得本地或远端IP端口API调用的的应用实列 5:本hook模块不支持非模块内存区hook,如申请的动态分配页等,不是不能支持,只是觉得没有任何意义,对这方面有需求的,自行改写模块源码使用 提醒:hook回调函数中尽量减少耗时代码,时间越长返回越慢,回调中谨慎操作控件,如必须要用到可参考源码中实列写法采用线程操作 --------------------------------------------------------------- 2021/3/1   模块源码v1.6更新: 1:修复  x64_远程调用函数()命令,在没有提供 寄存器 参数时,没有返回值的BUG。 --------------------------------------------------------------- 2021/2/28 模块源码v1.5更新: 一:修复win7 64位系统下枚举模块 出现部分模块长度出现负数的问题,从而导致部分win7用户不能使用 二:强化 远程hook64指令_安装 的稳定性:        1,穿插代码中增加对标志位的保护,避免hook位置长度下一条指令为跳转时产生跳转错乱的问题,强化了hook任意位置的定位        2,因为穿插代码中会调用AP

win7x64新进程画面均无显示一例分析——从内核态到用户态,从x64到wow64,从汇编到托管

新进程无画面是因为0号线程被mutex(DictManager_GlobalLocker)卡住。 输入法SOGOUPY用到的mutex(DictManager_GlobalLocker)无法释放是新进程卡住的直接原因。 无法释放是因为本该由进程Imclient里线程fffffa80c895c950释放,但是它也被CriticalSection=7b0138卡住无法释放。 cs=7b0138本该由Imclient里线程574来释放,但是它出了异常,异常代码的执行中也进入Wait了。

u010607621的博客 974

原创易语言微信Hook-Demo-4.0.3.36-4.0.3.39-4.0.3.40纯源码

现在源码里自动判断v4.0.3.36 v4.0.3.39 v4.0.3.40 也就是说上面三个版本全部都支持!!! 众所周知VX4.0已经重构,大概从 v4.0.3.19 版本起,产品脱离测试阶段,转为正式版。 目前(截止发帖2025年4月16日 22:24:34)已经发布 v4.0.3.39 版本,官网可下载到,如官网又更新了新版本,可以到源码里备注的地址下载4.0.3.39版本安装包。 之前有研究一段时间3.9版本,最新版本号3.9.12.51可能以后再也不会更新了,所以现在要开始学习4.0版本。 无奈本人技术有限,目前只能勉强做到HOOK实时消息、获取登录用户信息、获取所有联系人信息列表、实现多开和消息防撤回 研究VX纯属个人兴趣爱好,没有任何商业相关,如有志同道合的朋友可以加我一起交流。 源码内相关功能我已经自己正常使用长达10个月多,从未出现过封号或限制登录等情况! 源码相关: 一、多开和消息防撤回:通过修改dll2个字节实现,一次修改永久生效。可以在已经登录了之后再同时打开多个。 二、获取登录用户信息:直接读取偏移地址读出wxid、account、昵称、手机号、签名、数据文件路径 三、获取所有联系人信息:用到了搜索,所以联系人很多的话可能要几秒时间吧 四、HOOK实时消息:可惜的是没找到图片消息的图片文件名(3.9.12.51是可以取到的),可能是我Hook点不对吧,xml消息里cdnthumbaeskey和cdnthumburl也不知道怎么拿来下载图片 源码内使用模块说明(已全部一起打包):精易模块[v11.1.5].ec、wow64_hook_3.32_修正.ec、特征码模糊搜索Ex.ec 前面2个不用讲也知道,特征码模糊搜索Ex.ec这个模块是我从别的模块里复制粘贴出来的。

Windbg调试命令详解(3)

3 进程与线程 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息。调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺。 3.1 进程命令 进程命令包括这些内容:显示进程列表、进程环境块、设置进程环境。 进程列表 多个命令可显示进程列表,但一般只能在特定情况下使用,它们是:|、.tlist、!process和!dml_proc。 竖线命令显示当前被调试进程列表的状态信息,这个命令在本章开头已作过介绍,命令格式如下: | [进程号] 请注意这里的定语:被调试进程列

张佩的技术库 6817

vxhook 3.9.12.15 X64 接受消息 发送文本 发送图片 删群成员

最新版vx-hook-3.9.12.15 X64 新增:删除群成员 功能:接收消息 发送文本 发送图片 发送文件 调用了wow 64模块和 精易模块,wow64模块和源码已打包 精易模块在论坛下载即可。

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 9000

Windows WoW64浅析

在默认情况下,32位组件访问32位视图,64位组件访问64位视图,这为32位和64位组件提供了一个安全的环境,并且将32位应用程序的状态与64位应用程序的状态隔开来。由于X64是X86扩展,从32位代码向64位代码切换并不是那么困难,代码段描述符告诉处理器将代码当作X86代码还是X64代码,32位寄存器其实就是64位寄存器忽略高一半内容,32位模式RAM的4GB的编址和64位模式低4GB一样,因此从X86代码调用到X64代码,所有需要做的就是调用一个X64段选择子即完成了切换。

u010551008的博客 1538

华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南

本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。

weixin_29305313的博客 1124

Windbg调试命令详解

转载注明>> 【作者:张佩】【原文:http://www.yiiyee.cn/Blog】 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe、ntsd.exe、kd.exe和Windbg.exe。其中cdb.exe和ntsd.exe只能调试用户程序,Kd.exe主要用于内核调试,有时候也用于用户态调试,上述三者的一个共

Boy_Kris的专栏 2961

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1148

数值计算方法 matlab用二分法或简单迭代法求_快速求解方程的根——二分法与牛顿迭代法

今天是周四高等数学专题的第7篇文章。之前的文章和大家聊了许多数学上的理论,今天和大家聊点有用的东西。我们都知道,工业上的很多问题经过抽象和建模之后,本质还是数学问题。而说到数学问题就离不开方程,在数学上我们可以用各种推算、公式,但是有没有想过在计算机领域我们如何解一个比较复杂的方程?如果之前没有想过,那你可能得想一想,因为以后很有可能会在面试题当中遇到。二分法我们要介绍的第一个方法是二分法。说到二...

weixin_39945915的博客 1303

Raw Stack Dump of WOW64 Process

Sometimes we need to dump raw stack data of the given thread to get correct function arguments or to see execution residue. If the process is WOW64 (32-bit running on x64 Windows) and its memory dump

sunliangyuan的专栏 2141

34、实数域上高效负循环卷积算法解析

本文介绍了一种高效的实数域负循环卷积算法,通过引入离散傅里叶负循环变换(DFNT)避免传统方法的冗余,显著提升计算效率。文章详细分析了算法原理、误差传播机制,并推导出误差与方差界,提出无误差和基于3σ规则的参数设置方案。结合Cooley-Tukey与Gentleman-Sande FFT路径优化,实验验证了算法在不同精度和多项式长度下的性能优势与结果正确性,为密码学与信号处理等领域提供了高精度、高性能的卷积计算解决方案。

salt的博客 114

PsGetProcessWow64Process 深度解析:Windows内核中的WOW64进程探测器

本文介绍了Windows内核中的PsGetProcessWow64Process函数,该函数用于检测32位进程在64位系统中的运行情况。文章解析了函数特性、参数及实现原理,并提供了实战应用场景,包括进程类型检测、模块遍历和反调试等。同时强调了使用时的注意事项,如架构兼容性和内存访问安全。最后对比了PsGetProcessPeb函数,并给出防御滥用和逆向工程的建议。本文仅供学习参考,严禁用于非法用途。

fearhacker的专栏 667

渗透测试工具之Sliver

攻击者需要将生成的植入物传输到目标系统,并执行它。C2 框架的架构与 Metasploit(如 Meterpreter)类似,但更专注于。(Red Teaming)中常见的攻击工具之一,攻击者利用 C2 服务器。组成,二者共同实现 C2 服务器与受控设备的通信。植入物(Implants)是 Sliver 生成的。抓包分析时,可以看到所有数据都是加密传输的。和**监听器(Listeners)**功能。Sliver 支持多种通信协议,如。随着安全防御的不断提升,企业应加强。进行通信,数据仍然是加密的。

idlecloud0105的博客 1934

C#上位机通信层封装:西门子S7NetPlus库的优雅使用

支持S7-1200/1500(机架号0,槽号1)、S7-300/400(机架号/槽号需根据实际配置);支持位(Bit)、字节(Byte)、字(Word)、双字(DWord)、浮点数(Float/Double)等数据类型的读写;支持DB块、输入寄存器(I)、输出寄存器(Q)、内存寄存器(M)、定时器(T)、计数器(C)的操作;轻量无依赖,兼容.NET 5+。首先定义核心枚举和常量,统一规范参数类型,避免硬编码。/// 西门子PLC型号(对应不同的机架/槽号默认配置)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1085

debug 64bit dump of a 32bit process in windows 7 64bit

In Windows 7 the TaskMgr provides one easy way to create dump for the applications. You can right click the Application from Applications tab or click the process from Processes tab and click the Cr

xbgprogrammer的专栏 1848

20、啁啾脉冲光纤放大器:原理、设计与仿真

本文详细介绍了啁啾脉冲光纤放大器(FCPA)的原理、设计与仿真过程。内容涵盖CPA技术的基本原理、光纤基CPA系统的组成、Tm掺杂光纤放大器的工作机制、全光纤脉冲展宽器的设计以及仿真分析。通过MATLAB仿真展示了脉冲在光纤中的展宽与放大过程,并讨论了如何优化系统以减少非线性失真、控制峰值功率并提高整体性能。文章还总结了系统优化的关键策略,并展望了未来的发展方向。

v4w5x6的博客 318

EasyHook WOW64绕过技术深度解析:跨架构Windows API钩子实现方案

在64位Windows操作系统环境中,32位应用程序的API钩子实现面临着WOW64架构带来的重大技术挑战。EasyHook作为Windows API钩子框架的重新发明,通过创新的WOW64绕过技术,为开发者提供了完整的跨架构钩子解决方案。本文将深入剖析EasyHook如何突破WOW64限制,实现32位与64位进程间的无缝API拦截,为系统监控、安全审计和调试工具开发提供关键技术支持。 ## W

gitblog_00439的博客 588

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

EasyHook:突破WOW64限制的Windows API钩子完整解决方案

在64位Windows系统中实现32位应用程序的API钩子一直是开发者的技术痛点。EasyHook作为一款创新的Windows API钩子框架,通过其革命性的WOW64绕过技术,为开发者提供了跨架构钩子的完整解决方案。本文将从实际开发痛点出发,深入剖析EasyHook如何突破WOW64架构限制,并为企业级应用提供可靠的技术支撑。 ## 痛点分析:64位系统中的32位程序钩子困境 随着Windo

gitblog_00639的博客 482

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Blackbone WOW64子系统:跨越32位与64位进程屏障的终极指南

Blackbone是一款强大的Windows内存操作库,而其中的WOW64子系统更是实现32位与64位进程通信的核心组件。在现代Windows系统中,32位应用程序运行在64位系统上时,需要通过WOW64(Windows 32-bit on Windows 64-bit)子系统进行过渡,而Blackbone的Wow64Subsystem模块正是为简化这一复杂过程而生。 ## 为什么需要WOW64

gitblog_00447的博客 306

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Windows内核驱动DLL注入终极指南:injdrv完整使用教程

Windows内核驱动DLL注入工具injdrv是一个基于概念验证的开源项目,专门用于通过APC(异步过程调用)技术实现用户模式进程的DLL注入。该项目支持从Windows 7到Windows 10的多个版本,并兼容x86、x64、ARM32及ARM64架构,特别注重对Wow64环境的支持。 ## 🚀 快速入门步骤 ### 环境准备与编译 首先克隆项目仓库并获取所有子模块: ```bas

gitblog_00248的博客 519

64位windows下32位进程一例卡死分析

@TOC 1 故障现象 win7 64 os下,360浏览器不定期出现卡死。 2 dmp分析 使用任务管理器给360se进程下dump。链接: https://pan.baidu.com/s/1Hd-T0T6WEcufjkFKDA6MHg?pwd=z4u5 提取码: z4u5。 windbg打开之,提示 For analysis of this file, run !analyze -v wow64win!NtUserMessageCall+0xa: 00000000`749bfdaa c3

u010607621的博客 2300

EasyHook跨架构API拦截:WOW64绕过技术的架构设计与实现原理

在Windows 64位系统环境下,32位应用程序的兼容性支持通过WOW64子系统实现,这为API钩子技术带来了架构隔离的挑战。EasyHook通过创新的WOW64绕过架构,为开发者提供了透明的跨架构API拦截解决方案,实现了在64位系统中对32位应用程序的无缝钩子注入。该技术解决了传统钩子框架在混合架构环境中的根本性限制,为安全审计、性能监控和系统调试等场景提供了关键技术支撑。 ## 技术演进

gitblog_01083的博客 314

windbg 进行调试

这里就是介绍下如何使用windbg,然后把几种常用的形式记录下,本人对于windbg的使用也是小白,所以只是简单的记录如下: 1.是程序没有响应,处于假死状态,一般情况下我们在windows下弄出个转存储文件,然后对dump进行分析,得到转存储文件的不走如下: 1.1 启动windows任务管理器,找到对应进程,然后鼠标右键,创建转储文件,然后得到DMP文件 1.2 打开windbg,然...

zhc的博客 437
上一篇: 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
下一篇: 探究float类型参数的传递方式
xbgprogrammer
博客等级 码龄20年 36粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值