《再谈进程与端口的映射》之狗尾续貂篇

汇编 I/O 与中断:端口读写、中断向量表与 ISR 本文详解x86架构下I/O端口与中断机制,涵盖端口映射、IN/OUT指令、中断向量表(IVT)结构及中断处理流程。通过实模式下的键盘、定时器等硬件示例,揭示操作系统如何通过中断实现硬件管理,并演示自定义中断服务程序的安装与正确调用方式,强调保护现场、读取扫描码、避免重入等关键细节,为理解操作系统底层交互提供坚实基础。 阅读详情

《再谈进程与端口的映射》之狗尾续貂篇


创建时间:2004-05-01
文章属性:原创
文章提交: hhhkkk (hac01_at_163.com)

《再谈进程与端口的映射》之狗尾续貂篇

日  期:2004-5-1
作  者:hhhkkk  [hhkkk@126.com]

拜读了ILSY 的大作《再谈进程与端口的映射》后,觉得很不错,用vc在电脑上调试,发现有些地方能取得信息 有些地方不能
更加怪的是,我的win2k上本来可以取得的,后来居然不行了。
而active ports却是那样稳定,有鬼不成 靠 ,偶不信
搬出OllyDdg经过调试对照发现,程序不能正常显示就是函数的OpenPhysicalMemory导致不能取得信息
下面是active ports的OpenPhysicalMemory反汇编部分
0040FCF2    8B1D CC124000   MOV     EBX,DWORD PTR DS:[<&KERNEL32.MapViewOfFile>]           ; KERNEL32.MapViewOfFile
0040FCF8    C745 F8 00000A0>MOV     DWORD PTR SS:[EBP-8],0A0000
0040FCFF    BE 00100000     MOV     ESI,1000
0040FD04    FF75 F8         PUSH    DWORD PTR SS:[EBP-8]
0040FD07    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]
0040FD0A    57              PUSH    EDI
0040FD0B    57              PUSH    EDI
0040FD0C    6A 04           PUSH    4
0040FD0E    FF30            PUSH    DWORD PTR DS:[EAX]
0040FD10    FFD3            CALL    NEAR EBX                //// MapViewOfFile(*,4,0,0,0x0a0000); 1) map
.........    ///如果没map 成功 再改参数 map 因为我看到的都是一次map就ok 就不看了
0040FD2E    837D FC 00      CMP     DWORD PTR SS:[EBP-4],0
0040FD32    76 17           JBE     SHORT aports.0040FD4B
0040FD34    6A 67           PUSH    67
0040FD36    8D88 000C0000   LEA     ECX,DWORD PTR DS:[EAX+C00]
0040FD3C    5A              POP     EDX
///下面这段是关键部分了,也就是取得应该映射的起始位置处
0040FD3D    3911            CMP     DWORD PTR DS:[ECX],EDX
0040FD3F    74 0A           JE      SHORT aports.0040FD4B
0040FD41    47              INC     EDI
0040FD42    03CE            ADD     ECX,ESI
0040FD44    03D6            ADD     EDX,ESI
0040FD46    3B7D FC         CMP     EDI,DWORD PTR SS:[EBP-4]
0040FD49    72 F2           JB      SHORT aports.0040FD3D

0040FD4B    50              PUSH    EAX
0040FD4C    FF15 D0124000   CALL    NEAR DWORD PTR DS:[<&KERNEL32.UnmapViewOfFile>]        ; KERNEL32.UnmapViewOfFile
0040FD52    3B7D FC         CMP     EDI,DWORD PTR SS:[EBP-4]
0040FD55    75 03           JNZ     SHORT aports.0040FD5A
0040FD57    6A 39           PUSH    39
0040FD59    5F              POP     EDI
0040FD5A    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]
0040FD5D    56              PUSH    ESI
0040FD5E    C1E7 0C         SHL     EDI,0C
0040FD61    57              PUSH    EDI
0040FD62    6A 00           PUSH    0
0040FD64    6A 04           PUSH    4
0040FD66    FF30            PUSH    DWORD PTR DS:[EAX]
0040FD68    FFD3            CALL    NEAR EBX                //MapViewOfFile(*,4,0,edi,0x1000);
0040FD6A    5F              POP     EDI
0040FD6B    5E              POP     ESI
0040FD6C    5B              POP     EBX
0040FD6D    C9              LEAVE
0040FD6E    C3              RETN

看完了反汇编,接下来就是写代码了 呵呵 就在OpenPhysicalMemory加上下面这点就可以了
pMapPhysicalMemory=MapViewOfFile(pHandle,4,0,0,0x0a0000);  ///第一次映射的,后面那个参数如果映射没成功的话,就需要变化。在我电脑上这个就可以了,就用这个算了 要写完善的话  自己改改
DWORD d_begin=0;
DWORD d_edx=0x67;
DWORD d_p=pMapPhysicalMemory+0xc00;
while(d_edx!=d_p)
{
d_begin++;
d_p+=0x1000;
d_edx+=0x67;           //// 这个0x67不知道是什么含义,请谁给个答案最好 :)
if(d_begin>=0xa0)break;
}
Unmapviewoffile(pHandle);
if(d_begin==0xa0)
d_begin=0x39;
d_begin=d_edx<<0xc;
MapViewOfFile(pHandle,4,0,d_edx,0x1000);

应该加上后就可以马上看到效果了,不会出现映射失败的情况。

后话:现在xp和win2003都出来那么长时间了,也许win2k下的这个意义不是很大 :),这个偶也说不清楚了
      如果你在做这个部分的时候遇到我同样的问题,加上上面的代码应该能解决,但如果你做的程序的稳定性要和active ports一样,建议你再仔细分析下它的反汇编。由于时间关系,我就不多写了
      在做这个的时候,偶有不少地方不明白的,比如为什么那个隐射地址要变化,是什么原因使得这个要变化呢?如果您能解释,还请告诉偶hhkkk@126.com ,偶在此先谢啦
       那个0x67也是个古怪的数据,不知道是为什么用那个数据,因为偶只是从破解的角度来分析的,对内核不熟悉 :(
另外:第一次写点东西,比较乱,将就着看吧,也算作是个人的笔记吧。限于水平关系,不当之处还请指出。

以此文献给我常来索取的xfocus 如果需要转载的话,请保持文章完整性!

参考数据:
aports.exe  from   http://www.ntutility.com/
http://www.xfocus.net/articles/200202/344.html  
C 与汇编混合编程:符号链接、调用约定与参数传递 本文详解汇编与C语言混合编程的实现原理,涵盖PUBLIC与EXTERN指令的使用、32位调用约定(参数从右往左压栈、调用者清栈)、栈帧布局及寄存器保护规则。通过实例展示C调用汇编函数与汇编调用C库(如printf)的写法,并对比32位与64位(Windows x64)在参数传递、返回值和栈对齐上的差异。强调边界清晰的重要性,确保跨模块调用稳定可靠,适用于性能优化、硬件操作及学习底层机制场景。 阅读详情

相关推荐

边缘智能新篇章:RK3588上YOLOv8姿态估计的轻量化部署与性能优化实战

本文详细介绍了在RK3588平台上部署和优化YOLOv8姿态估计模型的完整流程。通过模型转换、ONNX中间表示和性能优化策略,实现在边缘设备上的高效实时推理,为嵌入式AI应用提供可行的轻量化解决方案。

ik6789012的博客 151

(转载)《再谈进程与端口的映射》之狗尾续貂篇

《再谈进程与端口的映射》之狗尾续貂篇发布日期:2004-05-08文摘内容: 文摘出处:http://www.xfocus.net/articles/200405/695.html创建时间:2004-05-01文章属性:原创文章提交:hhhkkk (hac01_at_163.com)《再谈进程与端口的映射》之狗尾续貂篇日  期:2004-5-1作  者:hhhkkk  [hhkkk@126

Kendiv's Box 2258

PFC电压环与电流环的带宽设计:如何避免输入电流畸变?

本文深入探讨了PFC电路中电压环与电流环的带宽设计问题,揭示了快速电压环导致输入电流畸变的机制,并提供了避免THD上升的工程实践方法。通过分析双环控制架构、谐波失真原理及带宽设计黄金法则,帮助工程师优化PFC系统性能,实现高功率因数与低谐波失真的平衡。

weixin_28304023的博客 420

再谈进程与端口的映射

关于进程与端口映射的文章已经有很多了,我把我对fport的分析也写出来,让大家知道fport是如何工作的.<br /> fport.exe是由foundstone team出品的免费软件,可以列出系统中所有开放的端口都是由那些进程打开的.而下<br /> 面所描述的方法是基于fport v1.33的,如果和你机器上的fport有出入,请检查fport版本.<br /><br />     首先,它检测当前用户是否拥有管理员权限(通过读取当前进程的令牌可知当前用户是否具有管理权限,请参考<br

Matrix_Designer的专栏 681

大连海事大学课设题目/基于LM331的频率电压转换器

部分基于LM331的频压转换的实物连接问题

2301_76649592的博客 3226

Unity 编辑器篇|(一)MenuItem菜单栏

"一级菜单/二级菜单上/三级菜单""一级菜单/二级菜单中 %#_B""一级菜单/二级菜单下 %&_C""一级菜单/二级菜单中 %#_B""一级菜单/二级菜单下 %&_C""GameObject/二级菜单""CONTEXT/组件名/菜单名""一级菜单/二级菜单上 #_A""Assets/二级菜单""一级菜单/二级菜单下""一级菜单/二级菜单上""一级菜单/二级菜单中""一级菜单/二级菜单下""一级菜单/二级菜单下""一级菜单/二级菜单上""一级菜单/二级菜单中""一级菜单/二级菜单下""自定义/Test"

游戏开发小Y的博客 13万+

浏览器中的data类型的Url格式,data:image/png,data:image/jpeg! 收藏 苏生不惑 发表于 4年前 阅读 3943 收藏 3 点赞 0 评论 0 腾讯云·

浏览器中的data类型的Url格式,data:image/png,data:image/jpeg! 收藏 苏生不惑 发表于 4年前阅读 3943收藏 3点赞 0评论 0 腾讯云·云上实验室:开发者零门槛,免费使用真机在线实验!>>>    所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些“小”的

songmaolin_csdn的博客 9万+

dify进阶:使用 FastAPI 的 StreamingResponse 实现高效的数据流传输

在 FastAPI 框架中,是一个非常有用的工具,它允许你以流的方式发送数据给客户端,而不是一次性加载所有内容到内存中再发送。这对于处理大型文件下载、视频流或者任何需要长时间处理的任务特别有用。

xiezhipu的博客 1433

(转载)再谈进程与端口的映射

再谈进程与端口的映射创建时间:2002-02-05文章属性:原创文章来源:www.whitecell.org文章提交:ILSY (masteruser_at_263.net)Author  : ilsy Email   : ilsy@whitecell.org HomePage: http://www.whitecell.org 日  期:2002-02-06类  别:安全 关键字:进程 PDE

Kendiv's Box 2752

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

实战指南:Qwen3-ASR-1.7B 语音识别

本文介绍了Qwen3-ASR语音识别模型的安装与使用。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1804

ioWriterAndReader

一、       OutputStreamWriter (一)            API1.6.0 说明 java.io 类 OutputStreamWriter java.lang.Object   java.io.Writer       java.io.OutputStreamWriter 所有已实现的接口: Closeable, Flushable, Appendabl...

HelloWorld 562

YOLOv8改进 | 独家创新篇 | 给YOLOv8增加辅助可逆分支结构(PGI,1:1改进)(全网独家创新,附视频讲解)

这张图(图3)展示了可编程梯度信息(PGI)及其相关网络架构和方法。这种网络结构主要用于改进特征融合,以提高目标检测的性能。然而,由于信息瓶颈的存在,网络中可能会丢失一些信息。这是一种旨在减少信息丢失的网络设计。它通过可逆的列结构来尝试维持信息流通不受损失,但如图中“Heavy Cost”所示,这种结构会增加计算成本。c) 深度监督:这种方法通过在网络的多个层次中插入额外的监督信号来提高学习的效率和最终模型的性能。图中显示了通过深度监督连接的各个层。

Snu77的博客 3744

再谈进程与端口的映射》之狗尾续貂篇

作 者:hhhkkk [hhkkk@126.com]拜读了ILSY 的大作《再谈进程与端口的映射》后,觉得很不错,用vc在电脑上调试,发现有些地方能取得信息 有些地方不能更加怪的是,我的win2k上本来可以取得的,后来居然不行了。而active ports却是那样稳定,有鬼不成 靠 ,偶不信搬出OllyDdg经过调试对照发现,程序不能正常显示就是函数的OpenPhysicalMemory导致不能取

执着我一生[F.S.T] 1670

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

.NET Remoting中的事件处理

.NET Remoting中的事件处理 好多人都对Remoting中的事件处理很疑惑,现将完整实现Remoting中事件处理的过程写出来,并对容易犯错误的地方进行总结,希望能给大家一些帮助。现假设有一个留言板程序:以下代码中,MsgBoard为以Singleton模式存活于服务器端的共享留言板实例,AddMessage是客户端添加留言的接口,MsgBoard定义如下:    public clas

高海东的专栏 3322

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win7版Active Ports下载

win7版Active Ports,Guard Ports v1.0.0.2发布,版本兼容win xp,win7,win8,win10。能够查看端口占用情况和端口使用情况。是开发人员必备的开发利器。 开发人员:北京师范大学 Grade 2000 Alex.Zhangrj 联系邮箱:zhrenjie04@126.com 下载地址:http://download.youkuaiyun.com/downloa

张人杰的博客 1641

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NtQuerySystemInformation

// CPPTest.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;thread&gt; #define SYSTEM_PERF_INFO 0x02 #define SYSTEM_PROC_TIME ...

farmwang的专栏 1928

进程与端口映射

文章目录:                   1. Demo 效果展示: 2. 进程和端口乱扯淡: 3. 查询进程和端口的 API 的介绍: 4. 根据进程 ID 获得该进程所打开的 TCP 和 UDP 端口: 5. 根据端口号来获得打开该端口号的进程: 6. 小结:                           1. Demo 效果展示:             ...

weixin_34248258的博客 260

汇编调试实战:DEBUG、Turbo Debugger、GDB 与 IDA

本文系统讲解汇编调试技巧,涵盖 DEBUG.exe 基础使用(寄存器查看、单步执行、内存操作)、Turbo Debugger 图形化调试,以及 GDB(32位Linux)和逆向工具(IDA/Ghidra)的高级应用。重点解析寄存器管理、断点设置、栈平衡检查与常见错误排查,如死循环、内存越界、栈崩溃等,强调静态分析识别函数边界、动态分析验证逻辑流程。掌握这些方法可高效定位底层缺陷,提升汇编开发能力。

软件工程师文艺 235

ARM 汇编调试入门:MOV、LDR 和 STR

掌握,最重要的是看清数据移动的方向。

ccddvvv的博客 181

10个完整汇编实例:排序、字符串与递归算法

本文提供10个16位实模式下可运行的汇编程序,涵盖冒泡排序、字符串反转、进制转换、阶乘与斐波那契计算等经典算法,附逐行解析。重点讲解寄存器使用、循环控制、栈操作、除法清零、符号比较、字符处理等核心技巧,揭示如PUSH/POP CX保全计数器、DIV前清DX、ASCII转换、溢出处理等关键细节。通过实践掌握底层逻辑,提升汇编编程能力。

软件工程师文艺 228

汇编子程序设计:参数传递、局部变量与调用约定

汇编代码模块化核心在于子程序设计。通过PROC/ENDP定义函数,结合栈帧管理(PUSH BP/MOV BP, SP)实现局部变量隔离与递归支持。参数传递可选寄存器(高效)或栈(多参适用),配合调用约定(如C、Pascal)规范参数入栈顺序与栈清理责任。掌握这些模式,便能编写结构清晰、可复用的汇编代码,迈向工程化开发。

软件工程师文艺 228

四级 Linux 应用与开发工程师笔记:8086 汇编、存储器、接口芯片和操作系统计算题整理

计算机四级 Linux 应用与开发工程师备考笔记:这门考的不是 Linux 命令,而是操作系统原理和计算机组成与接口两门课。组成与接口部分重点整理 8086 寻址方式、常考汇编指令和读程序题、存储器位扩展和字扩展、流水线时空图,接口芯片和中断按做题方法整理;操作系统部分整理高响应比优先、Clock 置换、两级页表、生产者消费者等考点,配真题讲解。

qq_39121450的博客 238

C 语言:编译 → 汇编 → 链接 → 加载运行

C程序从源码到执行经历预处理、编译、汇编、链接四阶段,生成ELF可执行文件,由操作系统加载至内存并由CPU执行。关键点包括:交叉编译生成ARM指令;链接分静态与动态;入口为_start而非main;动态库需-fPIC保证位置无关性;嵌入式环境下可能跳过OS直接运行。

嵌入式开发,ARM Linux开发 413

汇编分支与循环:JMP/LOOP/条件跳转的结构化编程

本文详解如何用汇编的JMP与条件跳转实现if/else、for、while等高级控制流。通过循环计数、嵌套循环及复杂判断的典型模式,展示底层指令如何构建逻辑结构。掌握LOOP指令与跳转组合,即可在无高级语法环境下实现高效、精准的程序控制,体现汇编语言的简洁与性能优势。

软件工程师文艺 256
上一篇: 再谈进程与端口的映射
下一篇: PE文件格式详解(上)
Pregunta
博客等级 码龄23年 6粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值