- 博客(154)
- 资源 (2)
- 收藏
- 关注
原创 Git Unknown error (0x80092013)
Git Unknown error (0x80092013)问题描述通过 Github Desktop push我的仓库时出现这个问题产生问题原因使用 Github Desktop 并不需要设置SSH,但下载Git必须配置SSH,否则就会被拒绝访问。当仅存在Github Desktop,访问你的云端仓库完全没问题,但是当下载Git,DeskTop会使用下载的Git去push你的仓库,此时...
2019-08-05 09:48:32
2717
5
原创 bison: /usr/local/share/bison.simple: No such file or directory
bison: /usr/local/share/bison.simple: No such file or directory前言:这个问题是在太坑了,网上搜到的资料又太少,所以记下来吧,希望能帮助到其他人。问题描述:Flex+Bison,配置环境完全没问题,Flex使用可以,但到Bison时却出现 bison: /usr/local/share/bison.simple: No such...
2019-08-04 00:59:49
3286
6
原创 CRACKME 3:来源于《逆向工程核心原理 第八章》
前言:算是第一次正规的逆向了吧,该程序用vba语言编写,逆向其算法。怎么说呢,这个程序逆向了大概三天,这三天考了三门期末,本来对期末真没有以前那种热情,该水水就水水,考完回来继续分析这个程序,在这上面的时间三天至少花了20个小时,从一开始一脸蒙蔽一窍不通到基本逆向出其算法和vba函数的作用,可以说是值得的,下面就总结一下自己的收获:一、逆向前的准备工作:了解其是什么语言编写,然后去查该语言的...
2019-06-14 17:41:27
509
原创 CRACKME 2 : 通过OD了解 栈帧 的使用过程
前言: 栈帧 EBP,与ESP不同,其主要是定位函数中的 传入参数,返回地址和局部变量的,下面我们通过调试该程序来看看栈帧有什么作用。代码:#include "stdio.h"long add(long a, long b){ long x = a, y = b; return (x + y);}int main(int argc, char* argv[]){...
2019-06-11 19:33:05
398
原创 CRACKME 1: 破解 WINDWS 对话框程序,修改对话框字符串
前言: 通过学习简单的修改对话框中的字符串,让我们了解到如何利用 OD 来查找 API 和 修改内存信息。源码:放在 VS 中直接编译就好,然后拿OD来进行调试#include "windows.h"#include "tchar.h"int _tmain(int argc, TCHAR *argv[]){ MessageBox(NULL, L"Hello World!...
2019-06-11 11:01:33
337
原创 win32 8.2 使用通用对话框
“打开”文件和“保存”文件对话框显示 “打开” 对话框的函数是 GetOpenFileName,显示“保存”文件对话的函数是 GetSaveFileName ,这两个对话框可以让用户选择 驱动器、目录、以及一个文件名(打开对话框还允许选择多个文件),但这两个对话框并不对文件进行任何操作,也就是说,它们进给用户提供一个同一界面来“选择”文件名,获取文件名以后,对程序的打开、读写等操作还需要...
2019-06-02 09:48:49
571
原创 win32 8.1 通用对话框简介
通用对话框函数由 Comdlg32.dll 提供, 在使用之前注意加上头文件:通用对话框列表:在这些对话框中,查找字符串和替换字符创的对话框是非模态的,方便用户在查找一个字符串以后,不必关闭对话框就可以继续查找另一个字符串,其他的对话框都是模态对话框。...
2019-06-02 08:02:26
393
原创 win32 7.5 区域和路径
前言:如果勇敢PhotoShop绘图软件,就一定记得它有“选择区域”,以及“路径”的概念,区域用来选定一个范围,以便对指定的范围进行某种操作;而路径相当于用虚拟的线条进行 “圈地运动”,虽然路径圈出来的看上去也是一个区域,但路径记录的是“圈地”用的线条而不是圈出来的地。使用区域:创建区域:GDI 中可以用下列区域建立函数来创建区域:CreateRectRgn 函数的参...
2019-06-01 23:19:48
284
原创 win32 7.4 块传送操作
块传送操作初步介绍:除了 7.2 节中的绘图函数,块传送函数也是重要的图形操作函数。块传送把源位置中的数据块按照指定的方式传送到目的位置中。把内存中的位图复制到窗口客户区,以及在不同的DC中复制图形数据都要用到块传送操作,块传送完成的工作就相当于图形之间的拷贝。块传送函数有 PatBlt,BitBlt,MaskBit,PlgBlt,TransparentBlt,StetchBlt。块传...
2019-06-01 19:35:24
345
原创 win3.2 7.3 创建和使用位图-使用设备无关位图
介绍:设备无关位图简称 DIB,这在 5.3.1 节中已经有所介绍。DIB一般是存放在磁盘上的以 bmp 为拓展名的位图文件,使用 DIB 的关键是如何将 DIB 中的数据转换为一个内存中的位图并返回一个位图句柄。bmp 文件的结构定义:文件的开始是一个 BITMAPFILEHEADER 结构BITMAPFILEHEADER 结构肚饿后面要么是 BITMAPCOREHEADE...
2019-06-01 10:22:04
334
原创 win3.2 7.3 创建和使用位图 - 创建和使用位图
这个很好理解,前面,我们设备环境是屏幕,直接画在屏幕上;现在,我们的设备环境是位图,直接画在位图上,然后再显示在屏幕上,显示出来同样的效果。设备环境:所有绘画函数的操作对象都是“设备环境”,对位图操作也不例外。为了对位图使用GDI函数,需要使用 CreateCompatibleDC函数为位图建立一个DC,然后使用 SelectObject 函数将位图选入这个DC中,这样,所有对这个DC...
2019-06-01 09:15:04
359
原创 win 7.2 绘制图形 - 代码解读
介绍:这个是解读那个 时钟代码 的,因为刚开始学习很多内容不聊了,代码篇幅比较长,同时还有很多数学计算在里面,虽然不复杂但全弄理解还是需要点时间的,所以,我们单独写一篇博客分析一下这个代码。代码解读:效果图:函数解读:自定义函数:我们按照 调用顺序依次往上讲解,当讲到最上面时,再讲程序原理,之后代码都很清楚了。1. _CalcClockParam proc : 获取 圆心坐标...
2019-05-31 13:39:53
254
原创 win32 7.2 绘制图形 - 绘制图形
GDI图形绘制函数主要由绘制线条和填充区域两大类。绘制线条函数以当前画笔绘制线条;绘制填充区域函数以当前画笔绘制边线,并以当前画刷填充中间的区域。绘制线条函数大体了解:绘制线条的函数有画直线的LineTo,画多条直线的 Polyline 和 Polylineto,画贝塞尔曲线的PolyBezier 和 PolyBezerto,画弧线的 Arc 和 ArcTo。当前点:介绍:DC...
2019-05-30 11:25:35
523
原创 win32 7.2 绘制图形 - 绘制像素点
在 DC 上绘制像素点是绘图最基本的操作,使用方法是: SetPixel 函数在 hDC的 dwX,dwY 位置以 dwColor 为颜色画上一个像素点。如果需要获取某个像素点的颜色值,可以使用:应用场景与缺点:虽然绘画像素是最基本的绘图操作方法,但是在程序中一般很少使用 SetPixel 函数,因为它的开销太大了,只适合在需要少量绘画像素的地方,如果要绘画一个区域,那么最好使用画...
2019-05-30 09:08:46
1358
原创 win32 7.2 绘制图形 画笔和画刷
“画笔和画刷”的介绍:GDI 中的绘画函数有 3 大类:画点、画线和画填充区域。对于photoshop之类的,一定知道,画线需要画笔,画填充区域需要画刷。GDI 同样也有画刷画笔等概念,画刷,画笔,以及其他一些GDI中要使用的东西,包括字体,区域,路径,图案和位图统称为GDI中的“对象”,通过SelectObject函数可以指定一个DC当前使用的对象对应哪一个对象句柄,称为“当前对象”。当...
2019-05-29 11:53:21
734
原创 win32 7.1 色彩和坐标
Windows的色彩:一种颜色可以分成 红绿蓝 三原色,所以可以用红、绿、蓝3个分量的组合来表示颜色。索引色:当设备支持的颜色深度少于等于8位时,总体位数太少,不足以用来表达3个颜色分量,这时系统建立一个色彩表,像素数据用来做索引在颜色表中获取颜色值,所以低于8位的颜色成为索引色。win32中颜色的使用:在win32编程中,统一使用32位的整数来表示一个深度为24位的颜色,在这32位...
2019-05-29 08:48:00
604
原创 win32 7.1 设备环境
DOS和WINDOWS图形输出区别:DOS:在DOS系统中,如果在文本模式下显示信息,只需要把内容拷贝到 B8000h 处的内存中;显示图形信息,可以把图形拷贝到 A0000h 处的内存中。WHindows中,GDI接口把程序和硬件分割开来,在Win32编程中,再也不能通过直接向视频缓冲区拷贝数据的办法来显示信息了,那通过什么? 答案是通过“设备环境”来输出信息。“设备环境”介绍:...
2019-05-28 23:26:10
361
原创 win32 7.1 GDI程序的结构
初步介绍: 这个主要说明,when:什么时间,什么时刻,最适合来进行GDI操作已经其中的处理机制。客户区的刷新:在DOS系统上:在DOS操作系统中变成的时候,程序把文字或图形输出到屏幕上,在输出新的内容之前,这些内容总是保留在屏幕原处,这些内容总是保留在屏幕原处。这些内容会被意外覆盖的唯一情况是激活一个TSR程序,但在TSR程序在退出之前有义务恢复原来的屏幕,如果它无法恢复屏幕的...
2019-05-27 10:48:33
187
原创 win32 7.1 GDI 基本原理介绍:
GDI:图形设备接口GDI(Graphics Device Interface)是Win32的重要组成部分,其作用是允许Windows的应用程序将图形输出到计算机屏幕、打印机或其他设备上。GDI实际上是一个函数库,包括直线、图画和字体处理等几百个函数。GDI的意义:GDI的意义在于将程序对图形界面的操作和硬件设备隔离开来,在程序中可以将所有的图形设备都看成虚拟设备,包括视频显示器和打印机等...
2019-05-27 08:33:52
695
原创 win32 6.2 windows 时间
“定时器”与“时钟”的联系:很多读者一开始看到“定时器”这个词,往往就联想到时钟,但是,经过我们前一章的探索,可以发现,“定时器”这种特征明显不能用来构造时钟,定时器用于时钟程序只能是用于定时器刷新屏幕这个功能上,要得到系统的时间还是要靠别的方法。Windows时间的获取和设置Windows获取系统时间的函数:它们之间区别:GetLocalTime 返回 当前时间。GetSy...
2019-05-25 10:41:36
393
原创 win32 6.1 定时器
DOS的定时功能介绍:在DOS操作系统中要用到定时功能的时候一般有两种方法,一种是用一个空循环来延时;二是截获时钟中断。计算机的硬件时钟会以每55ms一次的频率触发8号中断,而在默认的int 08 中断处理程序中有一句调用 int 1ch 的代码,所以截获 int 08h 或者 int 1ch 都可以达到定时的要求。第一种方法的定时效果随计算机主频的不同可能会大不相同,相比之下,第二种方...
2019-05-25 09:23:48
348
原创 win32 5.7 二进制资源和自定义资源
使用二进制资源初步介绍:在第二章中从提到 DOS 的 exe文件可以带一个覆盖部分,覆盖部分实际上就是在真正的可执行部分后面附加的数据,然后由程序在运行中打开自身文件并使用这些数据(我们调试器 od,加载的程序可以看做 二进制资源)。win32的可执行文件中除了上面介绍的这些标准类型的资源外,也可以在程序中附带其他的数据,当然方法完全不同 – win32资源中允许用户自己定义二进制的资源或...
2019-05-24 21:56:24
503
原创 win32 5.6 版本资源信息
版本资源信息介绍:有时应用程序要确保自己运行时使用某一版本的DLL,以便可以确保使用某些函数。检测版本就是通过API函数查询定义于资源中的版本信息来完成的,如果资源中没有定义版本信息,那么就无法知道一个函数的版本究竟是多少。版本信息号是以 VERSIONINFO 类型的的资源保存在应用程序中,里面可以定义的信息包括文件的版本号、创建单位和语种等。版本信息的定义是可选的,一个程序可以不定义版...
2019-05-24 21:15:36
270
原创 win32 5.5 字符串资源
在资源中定义字符串:程序中用到的字符串常常定义在 .const 段中,但Windows也提供了另外一种使用字符串常量的方法,那就是在资源中定义。虽然在资源中定义比较复杂一点,但它带来的好处是便于开发不同语言的版本,比如,要退出其他语种版本,只需要修改资源中的字符串表就可以了。即使语言转换的是由第三者通过修改可执行文件来做的(如编程爱好者常常做的汉化工作),修改资源也远比修改代码来得快捷和...
2019-05-24 20:09:11
406
原创 win32 使用列表框
列表框介绍:列表框提供一个可供用户选择的列表,用户可以一次选择一个项目,也可以同时选中多个项目。资源的定义介绍:资源代码:可选择的列表框风格:用户消息的处理:WM_COMMAND 通知码:当列表框有 LBS_NOTIFY 风格的时候,用户有所动作时列表框会向父窗口发送 WM_COMMAND 消息,同时在 wParam的高16位中 指定 通知码,列表框的通知码很少,基本...
2019-05-24 17:27:53
1511
原创 win32 理解汇总
关于 WM_COMMAND 消息:它只是告诉程序:用户进行了一个在xx控件上的动作,至于这个动作是什么,它并没有告诉出来,比如,你可能对一个 □ 打了一个 √,但也可能取消这个 √,WM_COMMAND 只通知 程序,用户在 □ 上进行了个动作,之后,在 if 分支上 对于 □, 再用其余消息,向这个控件发送消息,得到其状态。又比如,你在编辑框中 输入文字,每改变一个字符,就会有 WM_C...
2019-05-24 13:45:26
161
原创 win32 5.4 使用 组合框
组合框 介绍:顾名思义,组合框是一个“组合”起来的东西,它由一个可供选择的列表,一个可供输入的 edit 类 组合而成的。组合框让用户既可以自己输入文本,也可以选择列表中的某一项当做输入。组合框的三种不同风格:CBS_SIMPLE 风格:它的上面是可以输入的文本,下面的列表可供选择预设本文。CBS_DROPDOWN风格:上面同样可以输入文本,但下面的列表时下拉式的,平常属于收起状态...
2019-05-24 13:26:53
473
原创 win32 5.4 对话框 使用滚动条
对话框种类分类:滚动条有水平和垂直两种,默认的 SCROLLBAR 定义的是 水平滚动条,它的默认风格是 SBS_HORZ 要定义垂直滚动条,后面则要加上 SBS_VERT 风格滚动条的消息发送:和其他子窗口控件发送 WM_COMMAND 消息不同,水平滚动条向对话框发送 WM_HSCROLL消息,而垂直滚动条则发送WM_VSCROLL消息,所以应该分别进行处理。消息格式:...
2019-05-24 12:35:08
479
原创 win32 5.4 对话框 使用文本编辑控件
文本编辑控件介绍:文本编辑控件是基于 Edit 类的控件,可以使用 EDITTEXT定义,读者可以在文本编辑空间中输入并编辑文本。每当用户在文本编辑框中输入一个字符时,控件就会向对话框发送一个WM_COMMAND消息。文本编辑框的获取与设置:要获取文本框中的方法有多种,可以用 GetWindowText或者 WM_GETTEXT消息;要设置文本,可以使用 SetWindowTex...
2019-05-23 16:19:44
908
原创 win32 5.4 对话框 使用静态控件
静态控件初步介绍:静态控件是基于 Static 类,之所以叫 “静态”控件,是因为它们“安静”,不会因为你点击就向对话框发送“WM_COMMAND”消息,所以,一般静态控件的ID是没有什么用处的,定义时常常将它们定位-1,如果需要在程序中改变静态控件指定唯一的ID以便记性操作。资源脚本文件中可以使用缩写的基于Static类的有LTEXT、CTEXT、RTEXT(三类不同对齐方向的文本框)和...
2019-05-23 15:18:26
379
原创 win32 5.4 对话框 使用单选钮和复选框
初步介绍:单选钮:单选钮是互斥的选择钮,同一组的多个单选钮是能有一个按钮选中,单选钮的外形是一个圆圈的标记加文本。复选框:复选框不是互斥的,多个复选框的状态不会相互影响,复选框的外形是一个方框加上文本。函数介绍:按钮的检测:无论 单选钮 还是 复选框,其控件都是基于Button类的,只是风格有所不同,对所有Button类,都有一个统一的检测函数IsDlgButtonCh...
2019-05-23 14:35:22
1411
原创 win32 5.4 对话框 子窗口控件的通用使用方法
适用控件的窗口函数:由于子窗口控件实际上就是窗口,大部分窗口函数对它们都是适用的,如:EnableWindow 在灰化和允许状态之间切换。ShowWindow 在显示和隐藏之间切换。GetWindowText 和 SetWindowText 来改变上面文字。MoveWindow 改变窗口大小和移动位置。举例:“显示图片”复选框的隐藏和显示,就是用ShowWindow 函数,处...
2019-05-23 09:42:31
708
原创 win32 5.4 在对话框 子窗口控件的定义
介绍:子窗口控件是一些Windows预定义的类,他们实际上就是一个个以对话框为父窗口的子窗口。对成员来说,在对话框中使用它们的时候并不需手工去逐一创建,只需要在对话框中创建就可以了。“对话框管理器”会在初始对话框的时候,根据定义语句自动创建所有窗口子窗口控件的定义:一般定义语法:各类元素介绍:文本:控件的初始化值ID:子窗口相对话框过程发送WM_COMMAND 中用的...
2019-05-23 09:01:15
363
原创 win32 5.4 使用对话框
我们在之前 《对话框的简介》 中有过对对话框的介绍:代码详细介绍:创建 模态对话框 的函数: DialogBoxParam( ) 创建 非模态对话框 函数:CreateDialogParam( )两者区别:这里直接看下面介绍就好,做到大体了解,需要创建时再查阅资料。对话框过程:Windows在“对话框管理器” - 也就是为对话框内建的窗口过程中处理对话框消息,在处理前会首先调用...
2019-05-21 19:56:40
221
原创 win32 5.4 对话框的资源定义
对话框的格式是:(其中 BEGIN END 用花括号 { } 来代替也行)其可选属性为(大体了解一下就好):代码解读:可以看出,其对话框中定义了四组控件,其分别是:图标、文本、按钮和一条横线。其中定义的 第三个是 控件的ID,我们在 对话框过程需要处理的:因为除了按钮,其余三个都是静态的,不会发送和接收消息,所以我们不需要控件ID,将其设置为 -1。但是按钮我们定义为 IDOK...
2019-05-21 19:19:45
447
原创 win32 5.4 对话框的简介
对话框介绍:对话框就是在程序中“选择菜单项弹出一个窗口”,认为是“子窗口”,其中对话框的按钮、文本框、图标等就是 子窗口控件。对话框的类型:modEl 对话框:模板对话框,用户在关闭对话框前不能切换到该程序的其他窗口。modeless 对话框:非模板对话框,可以任意切换该程序的其他窗口。对话框的工作原理:对话框创建使用的函数:model对话框:DialogBox...
2019-05-21 10:18:50
226
原创 win32 5.3 位图
位图(Bitmap)是Windows操作系统存储图像的方式,图像中的每个像素对应存储器中的一个或多个数据。位图的几个概念:位图:单纯的“位图”指的就是存放在内存中,可以马上使用的位图,总是与当前设备对应。设备无关位图:其就是“色彩表+位图数据”,存放在磁盘或者别的地方,不与设备对应,所以加载到有关设备就需要用色彩表与其对应起来,这个要理解。位图文件:位图文件一般以 bmp 为扩展名,w...
2019-05-21 09:27:28
254
原创 win32 5.2 图标和光标
图标和光标都是图形资源,其在程序中显示分两步:首先先将找到该图片路径,并且加载到内存中,返回一个对应的资源句柄,表示其该资源在内存中的位置。然后在程序中使用该句柄,调用有关资源。注意:基本所有资源都要这两步,先加载到内存返回句柄,然后程序调用句柄来使用其资源,而不是程序直接从磁盘中读取显示文件,这个逻辑一定要理清。图标和光标的资源定义:图标ID ICON [DISCARD...
2019-05-20 13:09:19
393
原创 win32 5.1 菜单的修改、使用系统菜单、右键弹出菜单、菜单状态的检测和设置、其他菜单函数
菜单项的修改:在程序运行中可以动态修改菜单性,包括添加、删除和修改操作。使用几个API来进行操作,这个可以先进行略过,需要时阅读有关书籍即可。使用系统菜单:系统菜单的介绍:如下就是系统菜单。系统菜单的创建:WM_CREATE是窗口创建CreateWindow时,系统给消息处理程序发送的消息,每次窗口创建,有且只有1个WM_CREATE消息,所以只运行1次,可以在这里初始化滚...
2019-05-19 21:31:19
978
《Windows环境下32位汇编语言设计(典藏版)》配套光盘.zip
2019-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人