轻松看懂的加解密系列(5)番外篇II:如何监视Windows操作系统上应用程序的API调用

        笔者曾经在 轻松看懂的加解密系列(1)番外篇II:Procmon实战和经典案例回顾-CSDN博客 和 轻松看懂的加解密系列(1)番外篇I:用Procmon监视一次AES加解密全过程-CSDN博客 这两篇文章中详细介绍过【Sysinternals Process Monitor】这款强大的监控工具。Procmon 主要用于监控Windows 操作系统上的系统活动,例如文件操作、注册表访问、进程和线程活动等,并不能直接监视应用程序的API调用的参数和返回值。例如 Procmon 可以监控到被测应用程序的哪个线程加载了什么动态链接库,但无法进一步地监视应用程序的API调用的参数和返回值。而另一款著名的系统监视工具【Rohitab API Monitor v2】则可以完成后续的这项任务,其三大主要功能如下:

  1. API调用监视:该工具可以捕获应用程序在运行时所调用的各种Windows API函数的信息。这些API函数包括文件操作、网络通信、注册表访问、图形绘制等。

  2. 参数和返回值分析:API Monitor v2允许用户查看API调用的参数和返回值,以便更深入地了解应用程序的行为。

  3. 调用堆栈跟踪:它可以生成API调用的调用堆栈信息,帮助用户追踪API调用的来源。

Rohitab API Monitor 官方主页:http://www.rohitab.com/apimonitor

如【图-1】大家可以自行选择合适的版本进行测试,笔者选用的是bx86-32-bitb安装版本。

图-1 下载地址

        本次实验目的在于验证之前两个测试程序的API调用,其一是采用CryptEncryptCryptDecrypt 这组传统加解密API轻松看懂的加解密系列(4) —— 改进版“AES对称加解密实例”(附源码)-CSDN博客,另一个则是采用CryptProtectDataCryptUnprotectData这组更方便于保护本地数据的API轻松看懂的加解密系列(5) —— Windows平台下本地数据加密的新选择(附源码)-CSDN博客

        启动 Rohitab API Monitor 工具后,工具栏保持默认选择,从左侧的【API Filter】直奔主题,我们只选择监控测试程序主要用到的几组加解密相关的API,这些API都位于【Security And Identity】-->【Cryptography】下,展开具体的子项并勾选目标API。如【图-2/3】所示。

图-2
图-3

         期间如果弹出【API Monitor: Process Notification】对话框,只要不是目标监控程序的进程,一律跳过。如【图-4】所示。

图-4

        启动第一个被测程序后,立刻会被监控程序发现,如【图-5】所示,此时需要选择【Monitor】,接下来在测试程序内正常进行加解密操作,会发现所有被勾选记录的API如果被调用,都会被按顺序记录下来。选中每个调用后,还可以进一步分析调用的参数和返回值,如【图-6】所示。不出所料,被测试程序最终调用了CryptEncrypt 接口来进行加密操作,并且返回成功。

图-5

图-6

        同理,在启动第二个被测程序之后,采用 CryptProtectDataCryptUnprotectData 接口来加密和保存本地数据的操作也被监控程序所确认。如【图-7/8/9】所示。

图-7

图-8

图-9

        

        所以在专业人员看来,一般的应用程序在各种安全监视工具的监控下,几乎毫无隐私可言。大公司在采购软件时通常会聘请专业的安全公司进行安全测试,这要求开发者必须严格按照规定的安全流程和标准来进行开发。同时,负责任的软件公司也会定期投入大量资源,聘请第三方安全公司来审查其内部的软件和代码。这是因为普通的研发人员很难全面了解其编写的代码的所有安全问题。这种做法体现了对数据和隐私的重视,尤其是在当今信息安全的背景下。然而,这也对开发人员提出了更高的要求。开发人员需要具备以下特质和技能:

  1. 安全意识:开发人员需要深刻理解安全原则和最佳实践,以在编写代码时考虑潜在的安全漏洞和风险。

  2. 遵循标准:他们必须严格遵循公司的安全开发标准和流程,确保代码的安全性。

  3. 代码审查:开发人员应主动参与代码审查,以及时发现和修复潜在的安全问题。

  4. 持续学习:安全领域不断演变,开发人员需要持续学习和更新自己的知识,以跟上最新的威胁和防御技术。

  5. 沟通技巧:他们需要能够与安全专业人员和团队密切合作,以确保应用程序的安全性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我了解了您的问题。Python是一种非常流行的编程语言,可以用来编写机器人操作系统的控制程序。以下是一些主要的API和它们的用途: 1. ROS(机器人操作系统API: ROS是一个用于机器人应用程序的开源框架,它提供了许多API,可以帮助您控制机器人的运动、感知和操作等方面。 2. OpenCV(开放源代码计算机视觉库)API: OpenCV是一个广泛使用的计算机视觉库,可以用于图像和视频处理、特征检测、目标跟踪等。 3. TensorFlow(谷歌人工智能框架)API: TensorFlow是一个用于机器学习和深度学习的框架,可以用于训练和部署神经网络模型。 4. PySerial(Python串口通信库)API: PySerial是一个用于串口通信的Python库,可以帮助您与机器人之间进行通信和控制。 5. Pygame(Python游戏开发库)API: Pygame是一个Python库,可以帮助您开发机器人的游戏和交互界面。 根据您的要求,我可以提供一个简单的示例代码,来演示如何使用PySerial API来控制机器人的运动。这个程序将从串口读取指令,然后将其转换为机器人的运动控制指令。 ```python import serial # 打开串口 ser = serial.Serial('/dev/ttyUSB0', 9600) while True: # 从串口读取指令 command = ser.readline().strip() # 解析指令,控制机器人运动 if command == b'forward': # 向前移动 pass elif command == b'backward': # 向后移动 pass elif command == b'turn_left': # 左转 pass elif command == b'turn_right': # 右转 pass else: # 未知指令 pass ``` 这个例子仅仅是一个简单的示例,您可以根据自己的需要来使用其他API,并且将其整合到您的机器人操作系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值