使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程 http://blog.csdn.net/liujiayu2/article/details/51713620 http://blog.csdn.net/lixiangminghate/article/details/54620339 http://download.csdn.net/download/laienzb3/4682381 http://www.ollydbg.net/index.…
Windows API 常用函数 2014-10-15 14:21  xiashengwang  阅读(2105)  评论(0)  编辑  收藏 .Net中虽然类库很强的,但还是有些时候功能有限,掌握常用的api函数,会给我们解决问题提供另一种思路,下面给出自己常用到的Api函数,以备查询. 知道api函数,但却不知道c#或VB.net该如何声明,可以查询这个网站:http://pinvoke.net/ 1,SetForegroundWindow 将窗口显示到最前面,前提是窗口没有最小化. [D…
cp :http://blog.csdn.net/x_perseverance/article/details/78897637 每一个函数被调用时,都会为函数开辟一块空间,这块空间就称为栈帧. 首先,我们了解一下不同种类的寄存器: (1)eax,ebx,ecx,edx :通用寄存器 (2)ebp:存放指向函数栈帧栈底的地址 (3)esp:存放指向函数栈帧栈顶的地址 (4)eip:程序计数器——保存程序当前正在执行指令的下一个指令的地址 接着我们以下面这段代码为例,深入到函数的调用过程中去: #…
-----------------------------------------------------------‘接收窗体’代码.cs------------------------------------------------------------ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; u…
C++中也可以使用Windows 系统中对应的API函数进行多线程编程.使用CreateThread函数创建线程,并且可以通过CreateMutex创建一个互斥量实现线程间数据的同步: #include <iostream> #include <Windows.h> using namespace std; HANDLE hMutex = NULL; //互斥量 DWORD WINAPI thread01(LPVOID lvParamter) { for (int i = 0; i…
.Net中虽然类库很强的,但还是有些时候功能有限,掌握常用的api函数,会给我们解决问题提供另一种思路,下面给出自己常用到的Api函数,以备查询. 知道api函数,但却不知道c#或VB.net该如何声明,可以查询这个网站:http://pinvoke.net/ 1,SetForegroundWindow 将窗口显示到最前面,前提是窗口没有最小化. [DllImport("User32.dll")] public static extern bool SetForegroundWindo…
转自:http://www.cnblogs.com/xiashengwang/p/4026259.html .NET中虽然类库很强,但还是有些时候功能有限,掌握常用的api函数, 会给我们解决问题提供另一种思路. 1.SetForegroundWindow 将窗口显示到最前面,前提是窗口没有最小化. [DIIImport("User32.dll")] public static extern bool SetForegroundWindow(IntPtrh Wnd); 2.ShowWi…
通俗点讲:1.普通函数(假设我们都是函数)你卖电脑,我买电脑,我给你钱(调用你)后,你给我电脑(得到返回值).这种情况下,我给钱后就不能走开,必须等你把电脑给我,否则你交货的时候可能找不到人.2.回调函数(假设我们还是函数)你还卖电脑,我也还买电脑,我给你钱(调用你)后,你发现没存货了,要去进货,不能马上给我电脑(返回值),我愤怒了,不想一直等下去,就给你留个电话号码,让你进完货后再打电话叫我(这个电话就是回调函数). 不知道说明白没...回调函数一般都是在多线程编程中使用.在多线程的框框下理解…
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之文件处理函数 API之打印函数 API之文本和字体函数 API之菜单函数 API之位图.图标和光栅运算函数 API之绘图函数 API之设备场景函数 API之硬件与系统函数 API之进程和线程函数 API之控件与消息函数 1. API之网络函数 WNetAddConnection 创建同一个网络资源的…
1.本文编写目的    本文是为了帮助一些人弄清一些关于Windows API, C运行时程序库(CRT), 和标准C++库(STL)的基本概念.有很多人甚至是有经验的程序员在这些概念上是含糊不清的甚至是有错误观点.如果你想知道他们是在什么基础上实现的并且一直没时间弄清楚这些概念,请花费点时间阅读下本文.2. 基本概念   下面这幅图代表了WinAPI.CRT和STL三者之间的关系.    表 1: Windows API.CRT和C++标准库之间的关系图     相邻的模块之间可以相互通讯.为…
Ø  简介 本文主要记录 Windows API 的调用示例,因为这项技术并不常用,属于 C# 中比较孤僻或接触底层的技术,并不常用.但是有时候也可以借助他完成一些 C# 本身不能完成的功能,例如:通过句柄获取其他程序数据,或者向操作系统发出指定的消息等等. 提示:关于 Windows API 的函数有很多,不需要将所有的函数都非常了解,笔者也只是将用到过的函数记录下来,方便以后需要时可以快速编写. 1.   鼠标事件 API 1)   函数原型:void mouse_event( long d…
(一)Windows API串口通信编程概述 Windows环境下的串口编程与DOS环境下的串口编程有很大不同.Windows环境下的编程的最大特征之一就是设备无关性,它通过设备驱动程序将Windows应用程序同不同的外部设备隔离.Windows封装了Windows的通信机制,这种方式称为通信API,Windows程序可以利用Windows通信API进行编程,不用对硬件直接进行操作.这种体系被称为Windows开放式服务体系(WOSA,Windows Open Services Architec…
C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的.  API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的. 区别他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C语言本身的. ·1.运行时库就是 C run-time library,是C而非C++语言世界的概念.     取这个名字就是因为你的C程序运行时需要这些库中的函数. ·2.C语言是所谓的“小内核”语言,就其语言本身来说很…
C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的.  API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的. 区别他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C语言本身的. ·1.运行时库就是 C run-time library,是C而非C++语言世界的概念.     取这个名字就是因为你的C程序运行时需要这些库中的函数. ·2.C语言是所谓的“小内核”语言,就其语言本身来说很…
0. 前言 最近做了一个进程信息相关的项目,整理了一下自己做项目时的笔记,分享给大家 1. 相关概念 1.1 HANDLE 概念 HANDLE(句柄)是Windows操作系统中的一个概念. 在Windows程序中,有各种各样的资源(窗口.图标.光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄. 句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针. Handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄. 系统对内核对象以链表的形式进行管理,载…
IDA: What's new in 6.8 Highlights This is mainly a maintenance release, so our focus was on fixing bugs. However, there are some improvements too: Support for long names. In previous versions of IDA names were limited to 511 bytes. This was causing p…
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形模式和文本模式查看程序的反汇编结果 运行IDA Pro,打开Lab05-01.dll,以图形化界面显示: 直接定位到DLLMain开始的位置上.用空格键可以切换到文本模式查看: (2)查看程序中的所有函数 程序中的所有函数包括:导入函数.导出函数.在中间过程中使用的函数. 我们可以从Import窗口…
Question: 1.DLLMain的地址是什么? 2.使用import窗口并浏览到gethostbyname,导入函数定位到什么位置 3.有多少函数调用了gethostbyname? 4.将精力放在0x10001757处的对gethostbyname的调用,你能找出那个DNS请求将被触发? 5.IDA Pro识别了在0x10001656处的中多少个局部变量? 6.IDA Pro识别了在0x10001656处的子过程的多少参数? 7.使用Strings窗口,来反汇编中定位字符串\cmd.exe…
IDA Pro 6.0使用Qt 框架实现了跨平台的UI.它的好处是插件编写者还可以直接使用 Qt 开发跨平台 UI.但是编剧呢? 在这篇博文中,我们将说明如何使用PySide使用IDAPython为 IDA Pro 创建 UI 界面. ipq_intro 背景 在早期版本的 IDA Pro 中,可以使用create_tform() / display_tform() API创建自定义 UI ,但代码是特定于平台的.在 MS Windows 上,程序员接收父窗体的 HWND,然后用自定义控件填充它…
今天,IDA 已经三十岁了.为了纪念周年纪念,我们将描述史诗旅程的开始和主要里程碑. 背景 在 1990 年代初期,DOS 是最流行的 PC 操作系统,主要是 8086,偶尔有 80286(80386 仍然非常昂贵).典型的 PC 最多只有 1MB 的内存,留给密集任务的空间很小.然而,软件开发行业发展迅速,需要调试和诊断工具.除了调试器,反汇编器大多是基于批处理的(非交互式).最受欢迎(也最昂贵)的是Sourcer通过 V 通信.它的交互性有限,因为它接受一个"定义文件",其中包含开…
VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个Office应用程序协同工作以完成单个应用程序无法完成的任务.然而,使用VBA仅能控制操作系统的一小部分.Windows API提供了控制操作系统绝大多数方面的功能.下面,介绍在VBA中使用Windows API的一些知识. 理解APIs API只是一组函数,可用于处理组件.应用程序或操作系统.通常…
DA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块. 在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址.函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复. 选择菜单Debugger下的Start process(也可以按F9键)来开始调试.调试会让程序在电脑中执行,所以IDA会提示注…
链接:http://skysider.com/?p=458 IDA Pro使用(静态分析+动态调试) 1.静态分析 IDA FLIRT Signature Database —— 用于识别静态编译的可执行文件中的库函数 IDA signsrch —— 寻找二进制文件所使用的加密.压缩算法 IDA scope —— 自动识别windows函数和压缩.加密算法 Ponce —— 污点分析和符号化执行工具 snowman decompiler —— C/C++反汇编插件(F3 进行反汇编) keyst…
交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA.是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器.IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研…
IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块. 在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址.函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复. 选择菜单Debugger下的Start process(也可以按F9键)来开始调试.调试会让程序在电脑中执行,所以IDA会提示…
5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载. 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红色表示一个条件跳转没有被采用,绿色表示这个条件跳转被采用,蓝色表示一个无条件跳转被采用.箭头的方向显示程序的流程,向上的箭头表示一个循环条件. 文本模式:左侧部分被称为箭头窗口,显示了程序的非线性流程.实现标记了无条件跳转,虚线标记了条件跳转,朝上的箭头表示一个循环. Tips:自动注释功能Opti…
默认情况下 IDA 不会打开这些窗口,可通过 View -> Open Subviews 命令打开 Strings 窗口(Strings) Strings 窗口中显示的是从二进制文件中提取出的一组字符串,以及每个字符串所在的地址 双击 Strings 窗口中的任何字符串,反汇编窗口和十六进制窗口将跳转到该字符串所在的地址 将 Strings 窗口与交叉引用相结合,可迅速定位感兴趣的字符串,并追踪到程序中任何引用该字符串的位置 例如,看到 SOFTWARE\Microsoft\Windows\Cu…
1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪图形界面调试器”,也跟IDA PRO之类的调试器相差甚远.这里又遇到另一个问题了——LINUX平台的IDA PRO不太好找. 综上,对于初学者而言最佳方案就是使用IDA PRO的远程调试功能! 2 环境配置 本文主要说明在MAC系统上如何通过IDA PRO对linux程序进行远程调试(如果宿主机为W…
关于ida pro的插件keypatch 来源 https://blog.csdn.net/fjh658/article/details/52268907 关于ida pro的牛逼插件keypatch 通常ida在修改二进制文件,自带的edit->patch program->assemble( Ilfak Guilfanov在论坛里也提到, 未来很可能会把assemble汇编器相关的功能彻底移除掉) 可以修改x86, x64 但是不能修改arm, arm64,移动端逆向该怎么办?  之前ar…
IDA Pro使用技巧及大杂烩 IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块. 在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址.函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复. 选择菜单Debugger下的Start process(也可以按F9键)来开始调试.调试会让程…