自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 WCF流与文件传输

开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了。 TransferMode其实是一个举枚,看看它的几个有效值: Buffered:缓冲模式,说白了就是在内存中缓冲,一次调用就把整个消息读/写完,也就是我们最常用的方式,就是普通的操作协定的调用方式; StreamedRequest:只是在请求的时候使用流,说简单一点就是在传入

2017-06-23 21:41:10 762

原创 WCF数据协定

下文枯燥无趣 毫无逻辑 不建议阅读 是传说中的WCF系列数据协定部分的摘抄 建议阅读原文 http://blog.csdn.net/tcjiaan/article/details/8195867 不管在服务器端我们把数据成员定义为公共属性还是私有字段,到了客户端都全变成公共属性了 这什么会这样呢?其实数据协定是通过XML来传输的,你想一想XML序列化的特点就找到些启发了,XML序列化和反序列

2017-06-23 16:43:21 444

原创 WCF接收消息头

用OperationContext.Current.IncomingMessageHeaders得到从客户端收到的消息头 1.修改Server端的MyService public string TestMethod() { //用指定的localName和URI查找标头位置 int

2017-06-23 15:19:38 1321

原创 WCF手动搭建 HelloWorld

1.新建两个WinForm, Server, Client 2.Server中添加引用System.ServiceModel 3.定义一个接口,其中包含一个TestMethod方法,也就是服务协定。服务协定就是附加了ServiceContract特性的接口,方法附加OperationContractAttribute特性,作为服务操作,可以供客户端程序调用,如果不加OperationContr

2017-06-23 14:04:48 347

原创 IAT

ypedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; // 0 for terminating null import descriptor DWORD OriginalFirstThunk; // RVA to

2016-09-29 13:58:00 442

原创 PE节表头

总是在PE文件头开始的偏移00f8h处。 typedef struct _IMAGE_SECTION_HEADER{BYTE Name1[IMAGE_SIZEOF_SHORT_NAME]; // 8个字节 节表名称,如“.text”//IMAGE_SIZEOF_SHORT_NAME=8union{DWORD PhysicalAddress; // 物理地址 节区尺寸 未对齐前的实际大小 DWOR

2016-09-18 20:27:53 597 1

原创 PE可选头

typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic; 10B 32位PE 20B 64位PE 107 ROM映像 BYTE MajorLinkerVersion; 链接器版本号 BYTE MinorLinkerVersion; 链接器副版本号 DWORD

2016-09-16 20:16:55 1282

原创 PE文件头结构

typedef struct _IMAGE_FILE_HEADER { WORD Machine; 运行平台 WORD NumberOfSections; 文件的节数目 DWORD TimeDateStamp; 文件创建日期和时间 DWORD PointerToSymbolTable; 指向符号表(用于调

2016-09-16 16:51:17 437

原创 PE文件开胃

1.DOS头 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number DOS签名 4D5A "MZ" WORD e_cblp; // Bytes on

2016-09-16 15:31:06 292

原创 菱形继承的识别

子类的构造CSofaBed SofaBed;0041478E 6A 01 push 1 ;构造祖父类的标志 true表示构造 00414790 8D 4D C8 lea ecx,[SofaBed] 00414793 E8 1F D0 FE FF call

2016-09-15 16:41:46 376

原创 纯虚函数的识别

虚表中的纯虚函数会被编译器统一替换成_purecall.;构造函数CVirtualBase::CVirtualBase: 0040787F 59 pop ecx 00407880 89 4D F8 mov dword ptr [this],ecx 00407883 8B 45 F8

2016-09-15 15:26:19 445

原创 多重继承的识别

在多重继承中,子类虚表指针的个数取决于所继承父类的个数,有几个父类就会有几个虚表指针(虚基类除外)。这些指针在将子类对象转换成父类指针时使用,每个虚表指针对应一个父类。class CSofaBed : public CSofa, public CBed{public: CSofaBed(){00407838 89 4D F0 mov dword

2016-09-14 17:33:39 305

原创 没有sig文件时在IDA中定位main函数的一种方法

当有sig文件时,IDA会自动定位到main函数 .text:004013B0.text:004013B0 ; =============== S U B R O U T I N E =======================================.text:004013B0.text:004013B0 ; Attributes: bp-based frame.text:004

2016-09-14 15:27:26 3565

原创 虚函数的识别2

1.虚函数调用过程:void ShowSpeak(CPerson * pPerson) pPerson->ShowSpeak();00407CFE 8B 45 08 mov eax,dword ptr [pPerson] 00407D01 8B 10 mov edx,dword ptr [eax]

2016-09-14 14:49:19 345

原创 虚函数的识别1

1.有虚函数的类在编译中会加入一个隐藏数据成员,虚表指针。这就使得类的大小比数据成员的大小大4。 2.使用默认构造函数时,构造函数中会出现虚表指针,特征是二次跳转后到跳转表,虚函数表。 CVirtual MyVirtual;004076D5 8D 4D E8 lea ecx,[MyVirtual] 004076D8 E8 A5 C6 FF FF

2016-09-13 12:36:36 537

原创 构造函数的识别

1.局部对象 CNumber Number;00408F7D 8D 4D EC lea ecx,[Number] ;this指针的来源 对象的首地址00408F80 E8 AA B0 FF FF call CNumber::CNumber (040402Fh) ;调用构造函数 先到跳转表CN

2016-09-12 19:31:26 642

原创 返回值为对象的函数识别

调用部分: CReturn Return; Return = GetCReturn();004077A7 8D 85 70 FF FF FF lea eax,[ebp-90h] ;返回的对象的栈空间首地址004077AD 50 push eax 004077AE E8 68 A5 FF F

2016-09-12 14:59:34 526

原创 函数参数为对象的识别

当对象体积较小,成员较少时,编译器会把对象的成员分别压栈。而当对象体积较大时,编译器会把对象中的所有数据复制到栈空间中。 大小标准不明,可能是16。 最先定义的数据成员最后压栈。 CFunTest FunTest; FunTest.m_nOne = 1;0040779A C7 45 F4 01 00 00 00 mov dword ptr [FunTest],1

2016-09-10 15:13:04 428

原创 成员函数的识别

调用成员函数与普通函数的差别在于,调用成员函数时要先转到跳转表,再到函数入口。 Test.SetNumber(5);00407797 6A 05 push 5 00407799 8D 45 F8 lea eax,[Test] 0040779C 50 push

2016-09-10 13:43:20 663

原创 strlen和strcpy的识别

字符串处理函数通常会被编译器优化为内联函数,本文试分析VS2015下O2优化的strlen和strcpy的识别特征。n = strlen(szHello);00409EA2 8D 45 E8 lea eax,[szHello] ;取字符串首地址00409EA5 83 C4 08 add esp,8

2016-09-09 15:57:41 652

原创 Switch的识别

1.if else模式:case语句块不超过3条 通过O2优化后的代码来看, if else if 结构会在条件跳转后紧跟语句块,而switch结构则将所有的条件跳转都放在一起。 特征1:sub eax,case1je add1sub eax,case2je add2sub eax,case3jne addend特征2:语句mov esp,ebppop ebpret语

2016-09-08 17:13:15 970

原创 VS2015对除法的优化

O2int main(int argc, char* argv[]){00411D20 55 push ebp 00411D21 8B EC mov ebp,esp printf("%d", argc / 9);00411D23 B8 39 8E E3 38 mov

2016-09-04 17:46:52 1472

原创 Debug调试版 float指令

VS2015下的浮点指令。 浮点型与整形转换int main(int argc,char* argv[]){004117B0 55 push ebp 004117B1 8B EC mov ebp,esp 004117B3 81 EC CC 00 00 00 sub e

2016-09-03 15:42:40 839

西安高校电脑节联赛2012试题

西安高校电脑节联赛2012试题 分为ABC三组

2013-02-07

How Tibet might keeps its edge

全文介绍西藏高原如何保持其边缘 为science上的文章

2013-02-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除