MAX30102EVKitSetupV1.2.zip
Software Version: 1.2.0
File Name: MAX30102EVKitSetupV1.2.zip
Description: Integrated Optical Sensor
Operating Systems Supported: Windows 7,Windows 8.0/8.1,Windows 10
Required Hardware: MAX30102ACCEVKIT#
Related Product Folder(s):
MAX30102ACCEVKIT
Notes: MAX30102 EV KIT Software
脱壳的艺术—Mark Vincent Yason
脱壳的艺术
Mark Vincent Yason
概述:脱壳是门艺术——脱壳既是一种心理挑战,同时也是逆向领域最为激动人心的智力游戏之一。为了甄别或解决非常难的反逆向技巧,逆向分析人员有时不得不了解操作系统的一些底层知识,聪明和耐心也是成功脱壳的关键。这个挑战既牵涉到壳的创建者,也牵涉到那些决心躲过这些保护的脱壳者。
本文主要目的是介绍壳常用的反逆向技术,同时也探讨了可以用来躲过或禁用这些保护的技术及公开可用的工具。这些信息将使研究人员特别是恶意代码分析人员在分析加壳的恶意代码时能识别出这些技术,当这些反逆向技术阻碍其成功分析时能决定下一步的动作。第二个目的,这里介绍的信息也会被那些计划在软件中添加一些保护措施用来减缓逆向分析人员分析其受保护代码的速度的研究人员用到。当然没有什么能使一个熟练的、消息灵通的、坚定的逆向分析人员止步的。
关键词:逆向工程、壳、保护、反调试、反逆向
新编WIN32 API参考大全
第一章 Win32 API概论
1.1为什么使用 Wu32 API
在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API
函数。这些函数在程序员手中犹如“积木块”一样,可搭建出各种界面丰富、功能灵活的应
用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。
随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序
员可以采用“所见即所得”的编程方式来开发具有精美用户界面和功能的应用程序。这些可
视化编程环境操作简便、界面友好,比如:Visual C++,Delphi,Visual Basic等等。在
这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库
和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的
开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在
整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面
前“固步自封”,对下层API函数的强大功能一无所知。
实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接
使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft
Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现
的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理
解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵
活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。
1.2 Win32 API 简介
Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming
Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。
使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft
的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API
不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有
的功能和属性。
在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异
是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系
统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数
等等。
标准Win32 API函数可以分为以下几类:
窗口管理
窗口通用控制
Shell特性
图形设备接口
系统服务
国际特性
网络服务
在下面各节中,我们分别介绍这7种类型的API函数。
1.2.1 窗口管理函数
窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。你可以使用窗口管理
函数创建和使用窗口来显示输出、提示用户进行输入以及完成其他一些与用户进行交互所需
的工作。大多数应用程序都至少要创建一个窗口。
应用程序通过创建窗口类及相应的窗口过程来定义它们所用窗日的外观和行为。窗口类
可标识窗口的缺省属性,比如窗口是否接受双击鼠标按钮的操作。或是否带有菜单。窗口过
程中包含的代码用于定义窗口的行为,完成所需的任务,以及处理用户的输入。
应用程序可使用GDI函数来产生窗口的输出。由于所有的窗口都共享显示屏幕,所以应
用程序不接受对整个屏幕的访问。系统管理所有的输出内容,并对它们进行排列和剪裁,使
其能够适合相应的窗口。应用程序可以在处理输入消息时,或为了响应系统的需求而在窗口
中绘图。当窗口的大小或位置发生变化时,系统通常会向应用程序发送一个消息,要求它对
该窗口中原来未显露的区域进行重画。
应用程序以消息的形式接受鼠标和键盘输入。系统将鼠标移动、鼠标按钮操作转换为输
入消息,并将这些消息放入该应用程序的消息队列中。系统为每个应用程序都自动提供一个
消息队列。应用程序使用消息函数从消息队列中获取消息,并将它们分派给适当的窗口过程
进行处理。
应用程序可以直接处理鼠标和键盘输人,也可以让系统使用菜单和键盘加速健将这些低
级输入转换成命令消息。你可以使用菜单向用户展现一个命令列表。系统对所有菜单操作所
需的动作进行管理,包括让用户选择一个命令,然后再向窗日过程发送一个标识该选择的消
息。键盘加速键是应用程序定义的按键操作组合,系统可将其转换为消息。加速键通常对应
于菜单中的某个命令,并与该命令产生相同的消息。
应用程序通过在对话框中向用户提示附加信息来响应命令消息。对话框实际是一个临时
的窗口,用于显示信息或提示输入。一个对话框通常由一些表示按钮和方框的控制组成,可
供用户进行选择或输入信息。对话框中可包括用于输入正文、滚动正文、从列表中选择列表
项等操作的控制。对话框管理和处理来自这些控制的输入,使应用程序可使用这些信息,来
完成所要求的命令操作。
通过使用“资源”可以共享很多有用的数据,比如位图、图标、字体和字符串等,只需
将这些数据作为“资源”添加到应用程序或DLL文件中。应用程序通过使用资源函数,找到
资源并将它们加载到内存来获取这些数据。
窗口管理函数还提供了其他一些与窗口有关的特性,比如插入标记(Caret)、剪贴板、
光标、挂钩(Hook)、图标以及菜单等函数。
窗口管理函数包括以下几类:
易用特性函数(Accessibility Features)
Win32 API提供的一系列易用特性使得有残疾的人也能很容易的使用计算机,Win32 API
提供了一些函数和结构来控制这些特性。
按钮函数(Button)
Microsoft提供了对话框和控制来支持应用程序与用户之间的交互通讯。按钮就是一种
控制,用户可通过点击按钮来向应用程序提供输入信息。
插入标记函数(Caret)
一个插入标记是位于窗口绘图区中的一个闪动的直线、方块或图标。插入标记通常用于
指示文本或图形将插入的位置。Win32应用程序可以使用插入标记函数来创建一个插入标
记,改变它的闪动频率,显示、隐藏插入标记,或重新设置插入标记的位置。
组合框函数(Combo Box)
组合框是由COMBOBOX类定义的一种控制,综合了列表框和编辑控制的很多功能。使用
组合框函数可以在组合框中显示或获取不同类型的数据。
通用对话框函数(Common Dialog Box)
通用对话框是在通用对话框库中定义的,其功能是用来完成一些通用的任务,比如打开
文件、打印文档等。通用对话框为用户提供了一个统一的用户界面,使用户在不同的应用程
序中完成通用任务时的操作都相同,不必每次都学习不同的操作过程。
光标函数(Cursor)
光标是显示屏幕上的一个小图形,其所在的位置由指点设备比如鼠标、光笔或轨迹球等
控制。当用户移动鼠标时,系统就会随之移动光标的位置。应用程序使用Win32光标函数可
以创建、加载、显示、移动、限制和删除光标。
对话框函数(Dialog Box)
对话框是应用程序创建的一个临时窗口,用于获取用户的输入。应用程序通常使用对话
框向用户显示一些命令提示信息。一个对话框一般由一个或多个控制(子窗口)组成,这些
控制可用来输入文本、选择选项或执行命令动作。
编辑控制函数(Edit Control)
编辑控制是一个矩形窗口,通常用在对话框中,用户可通过键盘向编辑控制中输入和编
辑文本。系统对Unicode文本(字符采用双字节编码)和ANSI(字符采用单字节编码)文
本都支持。
图标函数(Icon)
图标是一个图片,由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当
提到图标时,可以是下列两种情况:
1)单个图标图像。资源类型为RT_ICON。
2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。
应用程序使用图标函数可以创建、显示、删除和复制图标。
键盘加速健函数(Keyboard Accelerator)
键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序
发送WM_COMMAND或WM_SYSCOMMAND消息。
使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,* 图标是一个图片,
由一个位图图像组成,并和一个掩码组合构成该图片的透明区域。当提到图标时,可以是下
列两种情况:
1)单个图标图像。资源类型为RT_ICON。
2)一组图标图像,系统或应用程序可从中选择。资源类型为RT_GROUP_JCON。
应用程序使用图标函数可以创建、显示、删除和复制图标。
键盘加速健函数(Keyboard Accelerator)
键盘加速键(或简称为加速键)是一个按键操作或多个按键操作的组合,可向应用程序
发送WM_COMMAND或WM_SYSCOMMAND消息。
使用键盘加速键函数可以拷贝、创建、加载或删除加速键表,还可以将加速键消息转换
为命令消息。
键盘输入函数(Keyboard Input)
键盘输入函数提供了接受和处理键盘输入的方法。
列表框函数(List Box)
Microsoft的Win32 API提供了对话框和控制来支持应用程序与用户之间的交互通讯。
列表框是一个控制窗口,其中包含一系列选项,可供用户进行选择。使用列表框函数可以在
列表框中显示或获取不同类型的数据。
菜单函数(Menu)
菜单函数向Win32应用程序提供了一系列创建、管理和使用菜单的方法,包括对菜单条、
菜单项。
于菜单等的处理。
消息和消息队列函数(Message and Message Queue)
消息和消息队列函数向Win32应用程序提供了一系列使用消息和消息队列的方法,包括
对消息进行
传播、发送、获取、转换等操作。
鼠标输入函数(Mouse Input)
鼠标输入函数提供了接受和处理鼠标输入的方法。
多文档接口函数(Multiple Document Interface)
多文档接口(MDI)是应用程序定义用户界面的一种规范,在这种界面下,用户可以同
时使用多个文档。
资源函数(Resource)
一个资源是一些二进制数据,可以添加到Win32应用程序的可执行文件中。资源既可以
是标准的,也可以是自己定义的。标准资源中的数据包括图标、光标、菜单、对话框、位图、
增强元文件、字体、加速键表、消息表入口、字符串表入口或版本。应用程序定义的资源(也
称为定制的资源)可以包含特
殊应用程序所需的任何数据。
使用资源函数可以添加、删除、拷贝、替换或加载各种资源数据。
滚动条函数(Scroll Bar)
在Win32应用程序的窗口中,可以显示比该窗口的显示区更大的数据对象,比如文档或
位图。当窗口提供了滚动条时,用户就可以通过拖动滚动条来浏览该数据对象中位于显示区
外面的部分。
滚动条包括水平滚动条和垂直滚动条。使用滚动条函数可以创建和管理这两种滚动条。
窗口函数(Window)
在图形化的Win32应用程序中,窗口是屏幕上的一个矩形区域,应用程序可在该区域中
显示输出结果,并接受用户输入。因此,一个图形化的Win32应用程序的首要任务之一就是
创建一个窗口。
一个窗口与其他窗口共享显示屏幕,也包括其他应用程序所创建的窗口。一次只能有一
个窗口接受用户的输入。用户可以使用鼠标、键盘或其他输人设备与该窗口及拥有该窗口的
应用程序进行交互。使用窗口函数可以创建和管理窗口。
窗口类函数(Window Class)
一个窗口类是一个属性的集合,系统将该属性集合用作创建窗口的模板。每个窗口都是
某个窗口类的一个成员。使闲置或删除窗口属性。
O+DAY安全:软件漏洞分析技术 upload by piscor part4
O+DAY安全:软件漏洞分析技术.part4.rar,O+DAY安全:软件漏洞分析技术.part4.rar
O+DAY安全:软件漏洞分析技术 upload by piscor part3
O+DAY安全:软件漏洞分析技术.part3.rar,O+DAY安全:软件漏洞分析技术.part3.rar
O+DAY安全:软件漏洞分析技术 upload by piscor part2
O+DAY安全:软件漏洞分析技术,O+DAY安全:软件漏洞分析技术 upload by piscor part2
MySQL 5.1参考手册中文官方版
MySQL 5.1参考手册中文官方版。不错的,没有广告。