当前位置:文档之家› CSharp入门经典学习笔记

CSharp入门经典学习笔记

CSharp入门经典学习笔记
CSharp入门经典学习笔记

第一章:C#简介

1.1 什么是.Net Framework

特点:不限操作系统,不限应用程序类型,不限访问语言(通用类型系统,Common Style System , CST)。

包含:代码库、.Net公共语言运行库(Common Language Runtime ,CLR)←(负责管理用.Net 库开发的所有应用程序的运行)

MISL和JIT

编译过程:C#代码→Microsoft中间语言(Microsoft Intermediate Language , MSIL)由VS 完成→本机代码由Just-In-Time 编译器即JIT完成

程序集

编译应用程序时,所创建的MSIL代码存储在一个程序集中,程序集包括可执行应用程序文件(.exe)和其他应用程序使用的库(.dll)。

除包含MSIL代码外还包含元信息(即程序集中包含的数据信息,也称为元数据)和可选的资源(MSIL使用的其他数据,例如声音文件和图片)。元信息允许程序集是完全自我描述的,不会出现无法将需要的数据添加到系统注册表中的情况。

不必把运行应用程序所需要的所有信息都安装到一个地方。可以编写一些代码,执行多个应用程序所要求的任务。此时,通常把这些可重用的代码放在所有应用程序都访问的地方。在.Net Framework中,这个地方是全局程序集高速缓存(Global Assembly Cache ,GAC)。方法是:将包含代码的程序集放在包含该高速缓存的目录下即可。

托管代码

用.Net Framework编写的代码在执行时是托管的,即CLR管理着运行程序,其方式是管理内存、处理安全性,以及允许进行跨语言调试等。在C#中,只能编写在托管环境下运行

的代码,我们使用CLR的托管功能,让.Net自己与操作系统交互。

垃圾回收

提醒:需要许多内存才能运行的代码应自己执行这样的检查,而不是坐等垃圾回收。

链接

在编译为MSIL语言的C#代码不一定包含在单独的文件中,可以把应用程序代码放在多个源代码文件中,再把它们编译到一个程序集中,这个过程称为链接。好处在于处理几个较小的文件比处理一个大文件简单的多。

1.2 什么是C#

强大的语言:在C#中与C++比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。

类型安全的语言:在类型之间转换时,必须遵守严格的规则。

第三章:变量和表达式(P22)

3.1 C#的基本语法

区分大小写

代码的突出显示功能:#region Name

#endregion

3.2 变量

3.2.1 简单类型(P26)

String的字符数没有上限。

占位符(格式字符串)的使用举例:

Int myInteger = 17;

String myString = “blarblar”;

Console.WriteLine(“{0}{1}”,myInteger,myString);

3.2.2 变量的命名(P30)

基本变量命名规则:变量名的第一个字符必须是字母、_或者@,其后的字符可以是字母下划线或数字。

命名约定:Microsoft 建议,对于简单的变量,使用camelCase规则,而对于比较高级的命名则使用PascalCase。

3.2.3 字面值(P31)

逐字指定的字符串字面值:@”C:\Temp\MyDir\MyFile.Doc”;

注意:字符串是引用类型,而其他类型都是值类型,所以字符串也可以指定null值,即字符串变量不引用字符串。

3.2.4 变量的声明和赋值

3.3 表达式(P34)

3.3.1 数学运算符

举例说明运算符的位置与影响。

问:int var1, var2 = 5, var3 = 6;var1 = var2++ * --var3. var1的值是多少?

答:5*5=25 把运算符放在操作数的前面,则操作数实在进行其他任何计算前受到运算符的影响,而把运算符放在操作数的后面,则操作数是在完成表达式的计算后受到运算符的影响。

3.3.2 赋值运算符(P38)

3.3.3 运算符的优先级

3.3.4命名空间

Using用法:

1、简化对已创建命名空间中包含名称的访问,例:

Namespace LevelOne

{//nameOne defined;}

Using LevelOne;

//nameOne...

2、为命名空间提供一个别名,作为using语句的一部分

LevelOne命名空间中的代码把https://www.doczj.com/doc/6415807665.html,Three引用为NameThree,把https://www.doczj.com/doc/6415807665.html,Three引用为https://www.doczj.com/doc/6415807665.html,Three。

如果using语句声明如下:

这样全局命名空间中的代码和LevelOne命名空间就可以使用https://www.doczj.com/doc/6415807665.html,Three。

注意:using语句本身不能访问另一个空间中的名称,除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义的,或在链接到该项目的其他代码中定义的。Using语句只是便于我们访问这些名称,减少代码量。

第四章:流程控制(P44)

4.1 布尔逻辑

条件布尔运算符

&&和||运算符与&和|运算符的区别是性能比较好:

如果&&的第一个操作数为false,就不需要考虑第二个操作数的值了,同样,如果第一个操作数是true,||运算符就直接返回true,无需考虑第二个操作数的值。而&和|的操作数总是要计算的。故要尽可能使用&&和||。

4.1.1 位运算符

a<>b相当于a/2并丢弃余数进行b次。

4.1.2 布尔赋值运算符(P50)

&=、|=、>>=、<<=……

4.1.3 运算符的优先级更新

4.2 goto 语句(P52)

4.3 分支

?:运算符最常见用法:Console.WriteLine(“In {0} year{1} you will have a balance of {2}” , totalYears , totalYears == 1 ? ”” : ”s” , balance);

注意:Switch分支中,一个case语句结束不能进入下一个case,但有一种情况例外,即一次检查多个条件,如下:

4.4 循环

4.4.1 do循环

do循环的结构如下:

do

{

}while();

提示:while后的分号是必须有的。

4.4.2 while循环

4.4.3 for 循环

4.4.4 循环的中断(P69)

break :立即终止循环。

continue :立即终止当前循环,继续执行下一次循环。

goto :可以跳出循环到已标志好的位置上。

return :跳出循环及其包含的函数。

第五章变量的更多内容(P73)5.1.1 隐式转换

隐式转换规则是:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换到类型B。其他具体见释疑文档。

5.1.2 显式转换(P75)

两个关键字checked(expression) 和unchecked(expression)

例:

short A = 267;

byte B;

B = checked((byte)A);

5.1.3 使用Convert命令进行显示转换

5.2 复杂的变量类型

枚举,结构,数组

5.2.1 枚举(P81)

Enum typeName

{

Value1;

Value2;

ValueN;

}

声明这个新类型的变量:

TypeName varName;

varName = typeName.value;

枚举类型可提取的每个值都存储为该基本类型的一个值,在默认情况下,该类型为int。在枚举声明中添加类型,就可以指定其他基本类型:

Enum typeName :underlyingType

{

Value1;

Value2;

ValueN;

}

枚举的基本类型可以是byte , sbyte , short , ushort , int , uint , long ,ulong.

还可以使用一个值作为另一个枚举的基础值。

要获得枚举的字符串值,可以使用Convert.ToString(),使用(String)显示转换是不行的,

因为需要进行的处理并不紧紧是把存储在枚举变量里中的数据放在string变量中,而是更复杂一些。另外,也可以使用变量本身的ToString()命令。

也可以把string转换为枚举值,但其语法略复杂一些。有一个特定的命令用于这种类型的转换,即Enum.Parse(),使用方式如下:

(enumberationType)Enum.Parse(typeof(enumberationType),enumberationValueString);

5.2.2 结构(P85)

struct

{

}

要让调用结构的代码访问该结构的数据成员,可用关键字public。

5.2.3 数组(P87)

1、声明数组

数组的初始化有两种方式:可以以字面形式指定数组的完整内容,也可以指定数组的大小,再使用关键字new初始化所有的数组元素。

Int[] myIntArray = {1,2,3,4,5};

Int[] myIntArray = new int[5];(各元素默认数值为0)

也可以使用非常量的变量来进行初始化:

Int[] myIntArray = new int[arraySize];

也可以两者结合的方式声明,数组大小必须与元素个数相匹配:

Int[] myIntArray = new int[5]{1,2,3,4,5};

也可以使用非常量的变量来进行初始化,但该变量必须是常量

Const int arraySize = 5;

Int[] myIntArray = new int[arraySize]{1,2,3,4,5};

2、foreach循环

foreach( in )

{

//can use for each element

}

foreach 对访问数组只进行只读访问,不能修改。

3、多维数组

double[,] hillHight = {{1,2,3,4},{2,3,4,5},{3,4,5,6}};

第一位指定花括号,第二位指定花括号内的元素。

4、数组的数组

声明:

Int[][] jaggedIntArray;

初始化的两种方式:

可以初始化包含其他数组的数组,然后依次初始化子数组:

jaggedIntArray = new [2][];

jaggedIntArray[0] = new int [3];

jaggedIntArray[1] = new int [4];

也可以

jaggedIntArray = new int[3][]={new int[]{1,2,3},new int[]{1},new int[]{2,3}};

也可以简化,将数组的声明和初始化放在一行上:

Int[][] jaggedIntArray = {new int[] {1,2},new int[] {2},new int[] {3}};

对变长数组可以使用foreach但通常需要嵌套该循环,才能得到实际的数据

这是因为数组divisors1To10包含int[]元素,而不是int元素,必须循环每个子数组及该数组本身:

5.3 字符串的处理(P94)

1、将字符串转为char数组:

string myString = “Hello world!”;

char[] charArray = myString.toCharArray();

2、将字符串转换为大写或小写形式:

.ToLower(),.ToUpper

3、删除字符串中的空格:

.Trim();

4、删除其他字符

5、删除字符串前面或后面的空格

.TrimStart();.TrimEnd();

6、处理字符串的空格,在字符串的左边或右边添加空格以达到要求长度

.PadLeft();.PadRight();

7、提供要添加到字符串上的字符

String myString = “Aligned”;

myString = myString.PadLeft(10,’-’);

8、按提供符号拆分字符串

Char[] separator = {‘‘};

myString.Split(separator);

第六章:函数(P100)

第七章:调试和错误处理(P126)7.1 Visual Studio 中的调试

7.1.1 非中断(正常)模式下的调试

输出调试信息

Debug.WriteLine();仅在调试模式下运行

Trace.WriteLine();可用于发布程序

由System.Diagnostics命名空间提供

1、跟踪点

2、诊断输出与跟踪点(P134)

7.1.2 中断模式下的调试(P134)

1、进入中断模式

2、监视变量的内容(P138)

自动窗口(Autos)当前使用变量和前面的语句(Ctrl+D,A)

局部变量(Locals)作用域内的所有变量(Ctrl+D,L)

监视(WatchN)可定制的变量和表达式

3、单步执行代码(P140)

中断模式下的程序流

Step into:执行并移动到下一个要执行的语句上

Step over:同上,但不进入嵌套的代码块,包括函数

Step out:执行到代码块的末尾,在执行完该语句块后,重新进入中断模式

4、Immediate和Command窗口

5、Call Stack窗口

7.2 错误处理(P143)

异常

1、try…catch…finally如果有一个或多个catch块,finally就是可选的,否则就是必须的。

2、列出和配置异常(P148)

3、异常处理的注意事项

第八章:面向对象编程简介(P151)

8.1什么是面向对象编程

8.1.1什么是对象

略为复杂的对象可能不包含任何数据,而只包含函数,表示一个过程。

1、属性和字段(P153)

属性可以控制字段的只读、可写等。

2、方法

8.1.2所有的东西都是对象8.1.3对象的生命周期

8.1.4静态和实例类成员8.2 OOP技术

第九章:定义类(P168)

第十章:定义类成员(P193)

第十一章:集合、比较和转换(P222)第十四章:Windows编程基础(P331)第十六章: 使用通用对话框(P414)16.1 对话框

不同对话框所适用的场合

16.2 如何适用对话框

CommonDialog是对话框类的基类,所以所有对话框类的适用方式都是类似的。

16.3 文件对话框

16.3.1 OpenFileDialog(P417)

1、对话框的标题

2、指定目录

注意:为了获取特定的系统文件夹,可以适用System.Environment类的静态方法GetFoldPath(),该方法接受一个Environment.SpecialFolder枚举成员,其中可以定义系统目录的路径。

3、设置文件过滤器

4、有效性验证(P419)

5、帮助

6、结果

7、OpenFileDialog的属性

16.3.2SaveFileDialog(P427)

1、对话框的标题

2、文件扩展名

AddExtension是一个布尔属性,它把文件扩展名自动添加到用户输入的文件名上。其默认值是True。

3、有效性验证

为了自动验证文件名的有效性,应使用属性ValidateNames、CheckFileExists和CheckPathExists。

4、覆盖已有文件

如果PromptCreate属性设置为True,就会询问用户是否要创建一个新文件,如果OverwritePrompt属性设为true,就会询问用户是否真的想覆盖已有的文件。

5、SaveFileDialog的属性

第二十二章:文件系统数据(P593)

22.1 流

流是串行化设备的抽象表示。串行化设备可以以线性方式存储数据,并可以以同样的方式访问:一次访问一个字节。

有两种类型的流:

输出流:当向某些外部目标写入数据时,就要用到输出流。

输入流:用于将数据读到程序可以访问的内存或变量中。

22.2 用于输入和输出的类

FileStream 表示可写或可读或两者皆可的文件,此文件可以同步或异步的读写。StreamReader 从流中读取字符数据,可以使用FileSteam创建为基类。StreamWriter 向流写入字符数据,可以使用FileStream创建为基类。

22.2.1 File和Directory类

File类的一些最常用的静态方法:

Directory类的一些常用的静态方法:

22.2.2 FileInfo类

FileInfo类不像File类,它不是静态的,没有静态方法,仅可用于实例化的对象。FileInfo对象表示磁盘或网络位置上的文件。提供文件的路径就可以创建一个FileInfo对象。

注意:FileInfo对象本身不表示流。要读写文件,必须创建Stream对象。FileInfo对象为读写文件提供了几个返回实例化Stream对象的方法。

22.2.3 DirectoryInfo 类

路径名和相对路径

Directory.GetCurrentDirectory()找到工作目录的当前设置

Directory.SetCurrentDirectory()设置新路径

22.2.4 FileStream对象(P598)

Filestream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream操作的是字节和字节数组,而Stream类操作的是字符数据。

1、文件位置

Seek()

2、读取数据

3、写入数据

22.2.5 StreamWriter对象(P604)

22.2.6 StreamReader对象

1、读取数据

读取数据最简单的方法是Read()。此方法将流的下一个字符作为正整数值返回,如果到达了流的结尾处,则返回-1。使用Convert实用类可以把这个值转换为字符。

2、用分隔符分隔的文件(P608)

第二十三章:XML(P628)

第二十四章:数据库和https://www.doczj.com/doc/6415807665.html,(P655)

软件破解入门教程

先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧! ---------------------------------------------------------------------------------------------------------------- 语句:cmp a,b //cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小. mov a,b //mov是赋值语句,把b的值赋给a. je/jz //就是相等就到指定位置(也叫跳转). jne/jnz //不相等就到指定位置. jmp //无条件跳转. jl/jb //若小于就跳. ja/jg //若大于就跳. jge //若大于等于就跳. 这里以一款LRC傻瓜编辑器为例,讲解一下软件的初步破解过程。大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话直接找我!有时间给你补节课!呵呵! 目标:LRC傻瓜编辑器杀杀杀~~~~~~~~~ 简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。并且本软件自身还带有MP3音乐播放和LRC歌词播放功能,没注册的软件只能使用15天。 工具/原料 我们破解或给软件脱壳最常用的软件就是OD全名叫Ollydbg,界面如图: 它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值. 右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示. cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态. 左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息. 右下角的是当前堆栈情况,还有注释啊. 步骤/方法 1. 我们要想破解一个软件就是修改它的代码,我们要想在这代码的海洋里找到我们破解关键的代码确实很棘 手,所以我们必须找到一定的线索,一便我们顺藤摸瓜的找到我们想要的东东,现在的关键问题就是什么

新手photoshop知识归纳总结 笔记一(初学者的宝典)

一、快捷键 全部快捷键 Ctl+鼠标左键移动选定区域 Ctl+A选择整体图片 Ctl+B 色彩平衡 Ctl+D 取消选择 Ctl+E 向下合并一个图层 Ctl+F 重复使用上一个滤镜 Ctl+J 复制图层 Ctl+L 色阶 Ctl+N 新建文件 Ctl+O 打开 Ctl+T 自由变换 Ctl+shfit+I 反选 Ctl+shfit+D 反选 Ctl+shfit+N 新建透明图层 Ctl+shfit+E 合并可见图层 Ctl+Shift+T 复制一个选区内容并变换选区 Ctl+U 色相/饱和度 Ctl+R 调出标尺 Ctl+I 反向 Ctl+“+”放大屏幕图像(等同于Ctl+空格,配合鼠标)Ctl+“-”缩小屏幕图像(等同于Alt+空格,配合鼠标)Ctl+【当前图层上翻一页 Ctl+】当前图层上翻一页 Ctl+Enter 将路径变为选区 Ctl+shift+Alt+B 调整为黑白模式 Alt+Delete 填充前景色 Ctl +Delete 填充背景色 Ctl+Alt+A羽化 Ctl+Alt+Z 多步返回 Ctl+Alt+W 关闭全部窗口 Ctl+shift+M 进入IR中编辑 Shift+E 向下合并一个图层 Shift+Tab 隐藏出工具栏外的所有调板 Ctl+1 红通道 Ctl+2 绿通道 Ctl+3 蓝通道 快捷键整理

选择:Ctl+A选择整体图片 Ctl+D 取消选择 Ctl+shfit+I 反选 Ctl+Alt+~ 选择高光区域 Ctl+Alt+0 显示照片的实际尺寸 Ctl+Alt+鼠标拖动复制当前层或选取内容 Ctl+shfit+ Alt+E 实现印盖命令 单键键整理 Home 定位图片左上角 End 定位图片右下角 Pg up/dn 将定位上翻和下翻 A路径选择 B 画笔 C 剪裁 D 默认前景和背景 E 画笔 F 窗口放大和缩小 G 油漆桶 H 抓手工具 I 取样点 J 橡皮擦 K 切片 L 套索 M 羽化 N 注释工具 O 加深或减淡 P 钢笔(caps lock 可以出现十字定位光标) Q 快速进入/退出模板 R 模糊和锐化 S 图章 T 文字 U 度量 V 移动 W 魔术棒 X 前景和背景互换 Y历史画笔 Z 放大或缩小 二、概念论述 图像的模式? 灰度模式:扔掉颜色信息的一种模式,是有损的。

Linux基本反汇编结构与GDB入门

Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数,而Windows下却是相反。 1、基本操作指令 简单的操作数类型说明,一般有三种, (1)立即数操作数,也就是常数值。立即数的书写方式是“$”后面跟一个整数,比如$0x1F,这个会在后面的具体分析中见到很多。 (2)寄存器操作数,它表示某个寄存器的内容,用符号Ea来表示任意寄存器a,用引用R[Ea]来表示它的值,这是将寄存器集合看成一个数组R,用寄存器表示符作为索引。 (3)操作数是存储器引用,它会根据计算出来的地址(通常称为有效地址)访问某个存储器位置。用符号Mb[Addr]表示对存储在存储器中从地址Addr开始的b字节值的引用。通常可以省略下标b。 图1表示有多种不同的寻址模式,一个立即数偏移Imm,一个基址寄存器Eb,一个变址或索引寄存器Ei和一个伸缩因子s。有效地址被计算为Imm+R[Eb]+R[Ei]*s,对于这中寻址方式,我们可以在数组或者结构体中进行对元

注:操作数可以是立即数值、寄存器值或是来自存储器的值,伸缩因子必须是1、2、4、或者是8。从上面的图我们就可以大致了解操作数的类型了。 在操作指令中,最频繁使用的指令是执行数据传送的指令。对于传送指令的两个操作数不能都指向存储器位置(我的理解是一般存储器存储的都是地址,不能够对地址和地址进行操作)。将一个值从一个存储器位置拷到另一个存储器位置需要两条指令——第一条指令将源值加载到寄存器中,第二条将该寄存器值写入到目的位置。下面给出源操作数和目的操作数的五种可能组合。 1、movl $0x4050, %eax 立即数——寄存器 2、movl %ebp, %esp 寄存器——寄存器 3、movl (%edi, %ecx), %eax 存储器——寄存器 4、movl $-17, (%esp) 立即数——存储器 5、movl %eax, -12(%ebp) 寄存器——存储器 注意这里的指令mov可能有不同的形式,不同平台的汇编一般是有些不一样的, 结合例子来进行讲解一下指令的具体操作,在这里将会正式接触到Linux下的GCC开发环境和GDB调试器,不过都是比较简单的应用。我的Linux操作系统是Ubuntu9.10,其它版本的差别应该不大, 如果我们要编写一个程序,我们可以用Linux下自带的vi或vim编辑器,studyrush@studyrush-desktop:~/C$ vi exchange.c vi 后面加我们要创建的程序文件的名字,在这里是exchange.c studyrush@studyrush-desktop:~/C$ gcc -o exchange exchange.c gcc -o exchange exchange.c 或gcc exchange –o exchange这两者都可以对源文件进行编译,-o exchange 表示对我们要输出的文件名称,可能表达的不够准确,大家可以先熟悉一下gcc编译器,应该就会明白的了。 studyrush@studyrush-desktop:~/C$ ./exchange 点加斜线再加输出文件名就表示运行程序,下面是运行的结果。 a = 3, b = 4

photoshop学习笔记

photoshop学习笔记

Photoshop学习笔记 这篇笔记的内容是对Photoshop这款软件操作知识的学习整理。目的是使自己系统的掌握Photoshop软件使用,提升软件操作能力。 这篇笔记的内容分为三个部分,即概括介绍部分、软件基础学习部分、软件归纳学习部分。 “概括介绍”部分,概括说明Photoshop软件功能,同时介绍本篇笔记的内容结构,及说明学习软件的方法。 “软件基础学习”部分,系统的、详细的介绍软件的各个功能。 “软件归纳学习”部分,在对有一个基本了解后,根据软件的使用流程,将软件的各个功能分门别类,使用概括归纳的方法学习软件,加深对软件的记忆。 第一部分概括介绍 Photoshop,简称“PS”。是一个由Adobe Systems开发和发行的图像处理软件,

Photoshop主要处理以像素所构成的数字图像。不能直接编辑非位图文件,但是可将非位图文件导入到Photoshop软件内,转换为位图文件后再进行编辑修改。是同类产品中的佼佼者。 我们可以将“ps”软件理解为一个工具,通过这个工具可以得到我们想要的图片文件,拿着这个图片文件就可以制作印刷品或是上传到网络了。 既然是工具,那就会有一个使用方法,这里将这样概括软件的使用流程。 第一步是开启软件,开启软件后还要在软件里建立一个工作区,利用这款软件的众多功能,在工作区里绘制图形。工作区就像是画布,我们在软件这间画室里可以铺开若干张画布。第二步就是在这张画布上绘画了。第三步就是将这张画布保存起来,或是日后继续画,或是拿去制作印刷品、上传网络。 这样概括软件的使用流程看起来很简单,但是很有用,根据这个“流程”,我们可以将“ps”软件众多的、复杂的功能归纳为简单的几种类型。这也是这篇笔记里使用的学习方法,即将

汇编语言入门教程

汇编语言入门教程 2007-04-29 22:04对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK 出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。

敬伟PS学习笔记

制作文化衫 填充前景色的快捷键Alt+Delete 填充背景色的快捷键Ctrl+Delete 蚂蚁线内的区域叫做选区按住shift键画椭圆时画出的是正圆 做填充时候也要新建一个图层 简单的合成(抠图换背景) 快速选择工具 放大Ctrl+ 缩小Ctrl- 平移空格键 撤销上一步Ctrl+Alt+z 返撤销上一步shift+Alt+z 先用较小的比例来画,放大了处理一些边缘。 快捷键Alt键可以快速的将添加模式切换为减去模式 调整优化选区调整边缘平滑7 羽化2 对比度12 移动边缘-24 输出到新建图层 调整图片的大小编辑自由变换按住shift来调整图片的大小不会使比例走形 换脸 在图层蒙版里面白色代表显示,黑色代表消失在蒙版里面也可以选定一个区域填充白色或

黑色让它显示或消失编辑》自由变换》可以改变图片的大小与方向把不透明度调低一点来调整图片的大小与角度 擦脸的时候画笔硬度0要选择比较软的画笔 色 RGB颜色模式(红绿蓝) 夏天变秋天图像》调整》色相|饱和度把绿色的色相变为黄色 画优酷图标 描边是从边缘向里面延伸的宽度 画有颜色的三角形圆形矩形用形状工具 居中的时候把所有的全选然后点击两个居中 画圆环的时候用描边工具画实心圆的时候用填充工具 复制:拖拽这个图层到新建图层的图标上 W和H之间的图标是用来锁定长宽比例的 高光+蒙版+黑白渐变工具做出立体的感觉 黑白渐变:从黑到白的渐变就是一个从遮挡到不遮挡的一个过程

渐变工具+shift键可以画一个垂直方向的渐变 画两个同心圆环(小圆环在大圆环里面)的方法:1画出第一个再复制它2改变大小再做两个对齐3改变描边的大小 海报 网页的头图大海报,950x480像素 做彩带的步骤:先缩小文档再用椭圆工具填充,再移动椭圆,按delete键删除重合的那一部分,可以使用自由变换工具调整一下彩带。按住Alt键再复制一条,然后使用填充改变一下他的颜色。填充的时候按一下锁定后面的第一个按钮,就可以只填充这个蓝色条,否则就整块屏幕都被填充了。 使用蒙版填充遮挡较大的区域时可以用椭圆选框工具填充黑色,这样比较快。 扣水杯(绿色的杯子如何变透明)

OllyDBG完美教程

关键词:OD、OllyDBG、破解入门、调试专用工具、反汇编 一、OllyDBG 的安装与配置 OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。汉化版的发布版本是个 RAR 压缩包,同样只需解压到一个目录下运行 OllyDBG.exe 即可: OllyDBG 中各个窗口的功能如上图。简单解释一下各个窗口的功能,更详细的内容可以参考 TT 小组翻译的中文帮助: 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签寄存器 (FPU) 可以切换显示寄存器的方式。 信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。 数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。 堆栈窗口:显示当前线程的堆栈。 要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下 OllyDBG 就可以生效了。 启动后我们要把插件及 UDD 的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签: 因为我这里是把 OllyDBG 解压在 F:\OllyDBG 目录下,所以相应的 UDD 目录及插件目录按图上配置。还有一个常用到的标签就是上图后面那个字体,在这里你可以更改 OllyDBG 中显示的字体。上图中其它的选项可以保留为默认,若有需要也可以自己修改。修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动 OllyDBG。在这个对话框上点确定,重新启动一下 OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。有人可能知道插件的作用,但对那个 UDD 目录

ps课堂笔记总结

一、Photoshop 1、由美国Adobe公司生产的专业图像处理及图像合成软件 二、基本术语 1、图像与图形 -图像:由像素点组成 分辨率:表示像素的密度 (网页,显示器)72像素/英寸,300像素/英寸(平面设计、打印)-图形:由数学公式表示的线条 特点:放大后清楚 矢量图制作软件:illustrator 2、颜色模式 -一种模式对应一种媒介 -HSB:基于人眼 H:表示色向 S:表示饱和度 B:表示明暗度 -RGB:基于显示器、发光体 R:红、G:绿、B:蓝 三原色分别有0~255种级别的强弱 红=绿=蓝0 黑255 白其它不同级别的灰 255最大级的情况下:红+绿=?红+蓝=?绿+蓝=?

-CMYK:基于油墨 洋红、黄、青三种油墨K表示黑色 三、启动软件 四、界面介绍 1、标题栏 2、工具栏(放置常用工具) 3、属性栏(不同工具属性不同) 4、工作区 缩放:Ctrl+加号/减号 抓手:空格+拖动鼠标(移动视图) 5、浮动面板 窗口/工作区/……还原默认工作区 6、常用快捷键 -Tab:显示及隐藏工具栏和浮动面板 -F:全屏切换 五、选区、图层、蒙板?** 1、选区:选框以内,注:所有操作均在选区内实现 2、图层:上下层叠关系的透明纸张 注:有在新层中作图的好习惯 3、蒙板:选区以外为蒙板 ——————————————————————————————————一、文件命令 1、新建

设置对应的纸张大小、颜色模式等 2、打开 直接将文件拖入窗口中即可打开 双击界面空白处选择文件进行打开 3、保存文件 常见格式: PSD:PS源文件,默认格式,信息全,方便于备份 Jpg:通用有损压缩格式 Tif:质量好,信息全,适用于要求高的作品 Png:质量好,支持透明 二、选区的创建* 技巧: 配合Shift定比例、配合Alt定中心、配合空格固化1、规则类 -矩形、椭圆形、单行、单列 拖动即可创建 2、不规则类 -套索工具组 *套索工具:拖动鼠标任意绘制选区 *多边形套索工具:单击定点连直线、双击首尾迸连 Detele:删除最近点、ESC:取消所有 注:配合缩放和抓手工具进行抠图

PHOTOSHOP完美笔记(珍藏版、宝典)

PHOTOSHOP笔记 枫月雅著 一、概述: 1、名称及产品商:(计算机软件名称不允许被汉化) Photoshop 5.0 1996年在美国推出(比较成熟的一个版本) Photoshop 7.0 目前在西安普遍使用的一个版本 2、作用:原创(杜绝手写板,杜绝“画”)、处理、合成 3、原理:多层渲染 4、内容:造型、色彩、调子(明暗)、质感、主题、空间、氛围、版式。 补充:空间指:高度、深度、味觉、时间、宽度、心理、视觉、听力。枫月雅 图的不完整性具备心理空间。 位图是点阵图的一种。 5、性质:点阵图 6、特点:大(PSD格式)可润色软件(润色:一种色调向另一种色调柔和过渡) 二、系统优化: 课外知识补充:a、查看属性(热键):Alt + 双击 b、判断PHOTOSHOP是不是好版本,一个很重要的方法:文件—最近打开文件(R)注意:如果没有后缀“(R)”,表示版本不太好。 c、通道:总量是24个通道,复合通道除外。注意:要在PHOTOSHOP7.0中 一般分为:复合通道(例:CMYK通道、RGB通道) 分色通道(例:R通道、G通道、B通道)枫月雅 专色通道 Alpha通道 d、苹果电脑简称:MAC 一般电脑简称:PC e、选区大小(在图层中任意选择的选区的大小):热键:F8 f、缺省状态:就是指默认状态 1、物理内存的更改:热键:CTRL+K – CTRL+8 更改物理内存用量。注意:更改物理内存使量后,必须重启后,命令才能生枫月雅效。这次更改是在编辑下的预设菜单里。 2、虚拟内存(暂存盘)的更改:热键:CTRL+K – CTRL+7 更改虚拟内存用量。注意:更改虚拟内存使量后,必须重启后,命令才能生效。这次更改是在编辑下的预设菜单里。 3、剪贴版清理:步骤:编辑–清理–历史记录注意:剪贴版占用的是物理内存

OllyICE反汇编教程及汇编命令详解

OllyICE反汇编教程及汇编命令详解[转] 2009-02-11 08:09 OllyICE反汇编教程及汇编命令详解 内容目录 计算机寄存器分类简介 计算机寄存器常用指令 一、常用指令 二、算术运算指令 三、逻辑运算指令 四、串指令 五、程序跳转指令 ------------------------------------------ 计算机寄存器分类简介: 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。 对低16位数据的存取,不会影响高16位的数据。 这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。 程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。 寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、除、输入/输出等操作,使用频率很高; 寄存器EBX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器ECX称为计数寄存器(Count Register)。 在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数; 寄存器EDX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。 在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果, 而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。 2、变址寄存器 32位CPU有2个32位通用寄存器ESI和EDI。 其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。 寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,

PS经典教程 oeasy教你玩转ps笔记

感谢https://www.doczj.com/doc/6415807665.html,/shamuobaiyang/blog_151429685.html整理 Oeasy ps 教程1开场白 PS的应用 --------------------------------------- oeasy PS视频教程02 分辨率 新建:打开软件,文件-新建。 分辨率:什么叫分辨率呀?在图像里面有,图像大小,单击。新建可以设置,中途同样可以改, 像素大小,:宽度高度。是显示器对应的。 文档大小:是打印,印刷出来的大小。单位厘米。 分辨率:每个英寸里面有多少个像素。 多少合适:打印照片:PPI:300;网页:72ppi ; 扫描底片,上千。根据不同需求确定ppi大小。

视图里边有一个像素长宽比,可以设置。自定义长宽比,因子是6,变的很款。因子是0.6,图像变的很高。 矢量图形,位图图像。 图像文件的格式:文件-存储为,下拉里面有格式。 怎样才能把图像压的很低,又拉的很大不变形:图层-双击,确定。变成一个普通图型。--在图层里面 -智能对象,就变成了类似矢量图行的。取消————图层-智能对象-删格式化。 智能对象缩放不变形,;普通图层时,可以使用滤镜笔刷等效果。------------------------------------------- oeasy PS视频教程03----查看各种颜 色(人眼的模型)Shi --就是色彩模式,是新建时本质的东西。 颜色:一、H 什么颜色 -色相、色调 -。二、S饱和度、鲜艳不鲜艳。三、I亮度、深浅。(SHI颜色模式)。 可见光-这边是红的-超过了就是红外线。那边是紫的,超过了,就是紫外线。 *色相的改变

OllyDbg入门完全教程(完美排版)

OllyDbg完全教程 目录 第一章概述 (1) 第二章组件 (5) 一、一般原理[General prnciples] (5) 二、反汇编器[Disassembler] (8) 三、分析器[Analysis] (9) 四、Object扫描器[Object scanner] (12) 五、Implib扫描器[Implib scanner] (12) 第三章 OllyDbg的使用 (13) 一、如何开始调试[How to start debugging session] (13) 二、CPU 窗口[CPU window] (14) 三、断点[Breakpoints] (14) 四、数据窗口[Dump] (15) 五、可执行模块窗口[Executable modules window] (16) 六、内存映射窗口[Memory map window] (17) 七、监视与监察器[Watches and inspectors] (19) 八、线程[Threads] (19) 九、调用栈[Call stack] (20) 十、调用树[Call tree] (21) 十一、选项[Options] (21) 十二、搜索[Search] (22) 十三、自解压文件[Self—extracting (SFX) files] (22) 十四、单步执行与自动执行[Step—by—step execution and animation] (23) 十五、Hit跟踪[Hit trace] (23) 十六、Run 跟踪[Run trace] (24) 十七、快捷键 (26) 十八、插件[Plugins] (29) 十九、技巧提示[Tips and tricks] (29) 第四章其他功能 (30) 一、调试独立的DLL[Debugging of stand—alone DLLs] (30) 二、解码提示[Decoding hints] (32) 三、表达式赋值[Evaluation of expressions] (32) 四、自定义函数描述[Custom function descriptions] (34)

李涛PS教程(提高篇)整理后笔记

一、画笔 1.理解画笔重要的参数:间距!所有绘画中的线都是用点构成的。形状动态、散度、平滑,是画笔调整面板中使用最广的参数之三。形态中,角度抖动中的根据方向抖动很重要,会根据画笔的方向来抖动。散度,基本上用两轴选项。 2.在使用橡皮图章工具进行修复图片时,为了保持不破坏原始素材,则可以新建图层,然后勾选样本-当前和下方图层,即可在新建的透明图层上绘制了。画笔加橡皮图章工具,可以做出很酷的纹理的效果感。调间距,开形态,定义压力,角度抖动为方向,开散布 3.画笔中,白就是透明的,灰色是半透明度的。 4.图层编组:ctrl+G。曲线,上弦往上拉是亮度,下弦往下是暗度。 5.阴影要做到两层或三层才比较逼真。选中主体形状然后填充黑色,按照需要的光源做斜切和透视,然后利用高斯模糊来虚化。下层阴影高斯模糊小一些,上层大一些。 6.通过正反打对画面主体做聚焦,四角暗淡的做法(突出主体),先做选区,新建调整图层-曲线,上弦曲线打亮主体正打,然后选中蒙版,执行滤镜-模糊-高斯模糊,半径选到最大或是稍微小一点;然后再反打(即变暗),同样曲线命令做下弦,可以选择直接将正打蒙版复制过来,然后ctrl+i反向命令。替换图层蒙版:先选中源蒙版,再按alt建,移动到目标位置。复制+替换:则是先按alt 健。 二、抠像 1.绝大多数是时候,通道是用来抠像的。抠像,大致分三个情况。1st,从清晰轮廓中抠出;2nd,复杂轮廓中抠出;3rd,从半透明中抠出。 2.针对清晰轮廓的抠像方法:上等方法为:用路径+混合剪贴法;中等方法用路径、画笔、调整轮廓灯;下等方法是用选择工具。复杂轮廓:上等方法:通道+混合剪贴法;中等方法是用调整边缘的;下等方法用选择工具。半透明工具:上等方法通道+画笔+混合剪贴法;中等调整边缘;下等方法用选择工具。混合剪贴法可去除时间一切杂边。 3.调整边缘是抽出滤镜的升级啊。所有选择工具都有这条命令。建立选区之后,才能使用调整边缘命令。调整边缘面板,半径是指边缘线的内外半径值。建议打开智能半径,以避免让清晰轮廓处出现半透明状态。平滑,控制线条。在像素低的时候,可以用羽化。减少原片环境光时,可以调低移动边缘命令,叫收边。再勾选净化颜色。可以再黑白通道中,看到细节。灰色显示有半透明的地方(本不该有)则生成带通道的图层蒙版,在蒙版中(按住Alt键进入蒙版编辑模式)用画笔(白色)去修改。修改后删除蒙版,则保存了透明层,然后锁定透明图层,用黑色画笔刷边缘,则可把毛发刷出来。之后,可新建图层,用1px画笔添加头发丝。

反汇编 第二节 常用汇编指令

——啊冲 第二节常用汇编指令 说明:汇编语言也是一门语言,其指令相当的多,非常丰富,在此我只介绍几个常用的、简单的汇编指令,让大家与我一同入门。其实在超多的计算机知识领域里我和大家一样只是个学生而已。所以,我所要求的同学级别(本视频所针对的对象)是:有一点编程经验,对反汇编感兴趣、零基础的朋友。 堆栈操作指令PUSH和POP ?格式: PUSH XXXX ?POP XXXX ?功能: 实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令. ? 加减法操作add和sub指令 ?格式: ADD XXXX1,XXXX2 ?功能: 两数相加 ?格式: SUB XXXX1,XXXXX2 ?功能: 两个操作数的相减,即从OPRD1中减去OPRD2,其结果放在OPDR1中.

调用和返回函数CALL和RET(RETN) ?过程调用指令CALL ?格式: CALL XXXX ?功能: 过程调用指令 ?返回指令RET ?格式: RET ?功能: 当调用的过程结束后实现从过程返回至原调用程序的下一条指令,本指令不影响标志位. ? 数据传送MOV 格式: MOV XXXX1,XXXX2 ?功能: 本指令将一个源操作数送到目的操作数中,即XXXX1<--XXXX2. ? 逻辑异或运算XOR ?格式: XOR OPRD1,OPRD2 ?功能: 实现两个操作数按位‘异或’运算,结果送至目的操作数中. ? 逻辑或指令OR ?格式: OR OPRD1,OPRD2 ?功能: OR指令完成对两个操作数按位的‘或’运算,结果送至目的操作数中,本指令可以进行字节或字的‘或’运算.

有效地址传送指令LEA ?格式: LEA OPRD1,OPRD2 ?功能: 将源操作数给出的有效地址传送到指定的的寄存器中. ?实际上,有时候lea用来做mov同样的事情,比如赋值: ?Lea edi,[ebp-0cch] ? 字符串存储指令STOS ?格式: STOS OPRD ?功能: 把AL(字节)或AX(字)中的数据存储到DI为目的串地址指针所寻址的存储器单元中去.指针DI将根据DF的值进行自动调整. ?说明:在VC的DEBUG版里经常用来为局部变量空间写上cccccccc指令 ? 比效指令CMP(CoMPare) ?格式: CMP OPRD1,OPRD2 ?功能: 对两数进行相减,进行比较. ?说明:经常与跳转指令相配合来形成循环或跳出操作 ? 跳转指令JXX ?JMP:无条件转移指令

PS笔记完整版

基本: 1.画布比较小的时候,分辨率改成300而不是70,使画面更精细。 2.1英寸=2.54厘米 30像素/英寸:1英寸长度内包含了30个像素点即1平方英寸内包含了900 个像素点 3.宣传页一般300分辨率。做展板等大东西不要太高分辨率,否则运行慢 4.位图(点阵图)放大会模糊,但是很逼真,矢量图虽然不会模糊但是不逼真 填色: 1.填充前景色的快捷键Alt+Delete或退格 2.选好背景色Ctrl+Delete或退格 3.X键前景色背景色切换 4.D键前景色和背景色回到默认前黑后白 羽化: 1.羽化值必须在划选区之前设置好,已经画好了选区,再换羽化值是没用的,除非用”选择-修改-羽化”(此处为叠加值,即之前如果选了30羽化,这次再选10羽化,那就是40羽化),快捷键shift+F6。 存储选区: 1.点“从选区中减去“按钮,制造月牙 2.移动的时候按着空格(此时移动鼠标,第二选区会移动但不会变大小),松开鼠标会得到月牙 3.“选择-存储选区(alt+s+v)-命名“可以ctrl+D取消选区 4.“选择-载入选区(alt+s+o)”勾选“反相”的话会出现保存的选区的反选 5.Ctrl+shift+I 反选 画笔 1.正片叠底直接在背景上话有叠加效果 2.画笔是前景色 3.颜色替换笔能替换背景图的部分颜色 4.用历史记录画笔可以把图片抹回最初状态 5.历史记录艺术画笔是用照片原本的颜色进行涂抹 图层的复制、自由变化

1.ctrl+r 标尺可以拖动出标尺线 2.shift正圆 alt从圆心开始画圆 3.画第二个圆的时候,鼠标对着圆心,但出现的不是在圆心的圆,这时候先画,在按一次shift+alt,圆 会自动到圆心且为正圆 4.画完可以把标尺导线拉回去(shift+ctrl) 5.创建新图层后在填色不要直接填在背景里 6.拖住往创建图层一放完成复制或者ctrl+j 7.以上是原位复制。移动复制为alt+拖动鼠标 8.自由变换ctrl+t 9.高级复制:原位复制后,点ctrl+t 移动或缩小。按shift+alt+ctrl+t可以按轨迹(移动和缩小的轨迹)复 制多个 仿制图章 1.打开一个图片,编辑-定义图案,就可以把它变成图章,在其他图片上涂抹 画图形 1.移动选区:按住空格调 2.Shift 加选 3.Shift+alt 交集 魔棒 1.容差:色彩的容差,数值越大,容忍色彩差异越大 2.连续:勾选之后只能选取连成一片的,不勾选的话可以选图片上所有的即使分离的块 3.要加选(按shift)的时候,被加选的相较于之前的,与周围色块颜色差异较小时,需要把容差调小 再选 橡皮擦 1.抹到历史记录,则可以还原被擦的 2.背景橡皮擦:选好不想被擦除的(前景)和想被擦除的(背景),选好容差,再擦 吸管 1.右击吸管选标尺拉一条线在图边缘按图像-旋转图像-任意角度把图转回正的(以前是歪的)自由变换 1.ctrl+e 向下合并图层 2.自由变换时可以斜切缩放做立方体 3.变换右键选垂直翻转再调整做倒影(倒影通过调整图层不透明度实现),选择倒影的顶端一部分 做羽化使之更逼真

IDA实例教程详解

IDA实例教程详解 作者:笨笨雄(转载) 1 软件环境 静态分析有很多好处,例如加壳的程序(尽管对于高手来说这并不会耗费太多时间),我们不需要寻找OEP,也不需要解除自校验,只要修复IAT,DUMP下来就可以动手分析了。假如你需要修改程序,可以使用内存补丁技术。动态与静态,调试器与反汇编器结合可以简化分析任务,帮助我们理解代码。因此掌握一种反汇编器是非常必要的。IDA可以说是这方面的首选工具,它为我们提供了丰富的功能,以帮助我们进行逆向分析。这从IDA复杂的工作界面便可以知道。 种类繁多的工具栏 在分辨率不高的情况,这些工具栏与反汇编窗口挤在小屏幕里,看起来不爽。我一般把它关闭(查看=>工具栏=>主工具栏)以获得更好的视觉效果。当我们需要这些功能的时候,直接使用快捷键就可以了。下面是常用快捷键的清单: 快捷键功能注释 C转换为代码一般在IDA无法识别代码时使用 这两个功能整理代码 D转换为数据 A转换为字符 N为标签重命名方便记忆,避免重复分析。 ;添加注释

在工具栏下面的便是工作窗口。主要的窗口分页有“IDA View-A”、“Name”、“Strings”、“Exports”和“Imports”。对于后面3项相信大家都不会陌生了,它们分别是字符参考,输出函数参考和输入函数参考。Name是命名窗口,在那里可以看到我们命名的函数或者变量。这四个窗口都支持索引功能,可以通过双击来快速切换到分析窗口中的相关内容,使用起来十分方便。

简单输入几个字符即可定位目标 IDA View-A是分析窗口,支持两种显示模式,除了常见的反汇编模式之后,还提供图形视图以及其他有趣的功能。 IDA的反汇编窗口 一般我们在分析的时候,并不关心程序的机械码,所以IDA为我们自动隐藏了这些信息。如果你有需要,可以通过以下步骤来设置:

ps笔记

时1,二维合成 2 线性;天正导出线稿要有粗细之分 3 图片拖进PS时按住不送,拖进去在送;就是新的图片。在拖进时想形成新的另一张新的图片是,需拉倒 工具栏下边 Ctrl+alt+z连退20 步 色阶ctrl+L 色的反向互补色ctrl+i【黑线变白色】加滤色【混合模式】【去黑留白】 正片叠地【去白留黑】 4 填图时从大到小,从远往近做 创建新的图层 删除图层键或delete

选区;1抠图 2隔离只对选区内有效 在PS中想要Ctrl+c或v必须要有选区 Ctrl+j原味复制 移动+Alt拖动 1选择【移动】工具选择是图层移动2选区1规则选区按住SHIFT绘制正圆或正方 2不规则选区 多边形套索双击自动闭合 按住ctrl+shift+i反向小三角是有隐藏的项 3魔棒选择颜色相同或相似的连续选择性需要勾 不勾时选择该图层所有颜色相同或相似

相似性容差控制相似度 容差;控制相似度。容差越大相似度越底选择范围越 大 容差越小相似度越底选择范围越小 【ps中选择哪个图层变蓝】Ctrl+D取消选区蚂蚁线消失backspace 蚂蚁线退回上一步空格键是抓手工具 变换;Ctrl+T 按住Shift 加选按住Alt 缩放时;从四个顶角同时按住SHIFT等比缩放 按住Alt 以中心缩放 Alt 和shift 同时按即中心又等比 图层移动ctrl+左中括号下移一层,ctrl+左中括号+shift至于底层 ctrl+右中括号上移一层,ctrl+右中括号+shift至于顶层 在PS中想要Ctrl+c或v 必须要有选区 Ctrl+j原味复制 移动+Alt 拖动 Crtl+E合并所选图层或自动向下合并一层

汇编语言入门教程

汇编语言入门教程2007-04-29 22:04对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K 的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag

相关主题
文本预览
相关文档 最新文档