Month: May 2018

《图解tcp/ip》读书笔记

第一章 网络基础知识 OSI参考模型 应用层 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。 表示层 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。 会话层 负责建立和断开通信连接,以及数据的分割等数据传输相关的管理。   传输层 起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。   网络层 将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。   数据链路层 负责物理层面上互连的、节点之间的通信传输。例如与一个以太网相连的2个节点之间的通信。   物理层 负责0,1比特流与电压的高低,光的闪灭之间的互换。   计算机网络 计算机网络根据其规模可分为WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)。 计算机网络最初的目的是连接一个个独立的计算机,使它们组成一个更强的计算环境。   协议 协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使哪些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵守相同的协议就可以实现通信。   网络通信方式 1.电路交换 2.分组交换 为解决电路交换中独占整个电路的问题,人们让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送,这就是分组交换。   在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处理过程是:发送端计算机将数据分组发送给路由器。路由器收到这些分组数据以后,缓存到自己的缓冲区。然后再转发给目标计算机。因此,分组交换也有另一个名称:蓄积交换。   网络通信方式又可以按接收端数量分为:单播、多播、广播、任播。   mac地址 mac地址由设备的制造厂商针对每块网卡进行分别指定,人们可以通过制造商识别号。制造商内部产品编号以及产品通用编号确保mac地址的唯一性。   构成网路的要素 网卡 任何一台计算机连接网络时,必须要使用网卡。   中继器 是在OSI模型的第一层–物理层面上延长网络的设备。   网桥/二层交换机 网桥是在OSI模型的第二层–数据链路层上连接两个网络的设备。   […]

《图解HTTP》读书笔记(已读过 1次)

第一章 了解Web及网络基础 HTTP由来 1990年11月,世界上第一台web服务器和web浏览器诞生;1994年的12月,网景发布了Netscape Navigator1.0。1995年微软功发布Internet Explorer1.0和2.0。   2000年前后,这场浏览器战争随着网景通信公司的衰落而暂告一段落。   IPS中较基础的知识 应用层    决定了用向用户提供应用服务时通信的服务。 传输层    提供处于网络连接中的两台计算机之间的数据传输(TCP/UDP)。tcp协议将收到的数据进行分割,并在报文前打上所属信息[1]。tcp为了保证传输的稳定性,连接时采用了三次握手策略,断开连接时采用了四次挥手的策略。[2] 网络层    该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。其中的ip协议负责传输,在发送数据的时候标上目标机器的ip地址。一般说来,到达目标机器所处的局域网后,再使用ARP协议寻出目标中所对应的mac地址。 数据链路层    用来处理连接网络的硬件部分,包括操作系统硬件的设备驱动,以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。 [1].层与层之间传输数据时就会发生,接收数据时则会消去首部。 [2].Client    Server SYN-> <- SYN/ACK ACK->   Client    Server FIN-> <- ACK <- FIN ACK->   域名(HOST) 相对于纯数字的ip地址,文字与英文句号(.)组成的域名更容易被理解和记忆。为了建立ip与host之间的对应关系。DNS服务应运而生,DNS协议通常对应的端口是53。操作系统上可通过固定host来查询对应的ip。 windows : nslookup linux : nslookup,dig URI和URL URI用字符串标识某一互联网资源,而URL表示资源的地点(位置)。可见URL是URI的子集。   第二章 – 第五章 简单的http协议 http报文内的http信息 返回结果的http状态码 与http协作的web服务器 http规定由客户端发出请求,服务端发出回应,一个标准请求由方法,URI、协议版本、首部字段、内容实体组成。 而响应报文由协议版本,状态码、状态码原因短语、响应首部字段和报文主体组成。 […]

分析一个语义上有明显错误的cm

系统 : Windows xp 程序 : CrackMe V3 by Bxm.exe 程序下载地址 : https://www.dreamcracker.online/d/93572bfed8124e798eab/files/?p=/Crack_Me/crackme%20v3%20by%20bxm.rar 要求 : 分析逻辑 使用工具 :OD,载入map文件的od插件 可在看雪论坛中查找关于此程序的讨论:传送门   该cm的反调试机制和bxm的第二个cm的一模一样,在之前的post里已经分析过,只要先手动启动exe然后附加就可以轻松绕过。   打开exe之后是很典型的用户名-密码-输入窗口,我们需要找到其判断逻辑的代码所在,可是和第二版cm不同的是,这次的检查完调试器后的代码段并非在用户领空,查看其调用栈也没发现可疑的函数。   于是我随时输入了几个常用组合试了试,没想到一下子就提示成功信息了。我用的组合是”pediy”-“11″。   一般来说出现这样的情况的概率比较小,这里应该是程序逻辑上有些漏洞。先不管这么多,既然弹出了消息框,我们就可以找出相关的api函数下断点: CWnd::MessageBoxA。   这里,我们就按图索骥的找到了程序的关键代码所在。这里,可以将ida中识别出的数据导出成map,然后由od插件 LoadMapEx导入od,多按几下ctrl+a强制重新分析代码即可显示mfc的函数名了。 放出一段经由ida转换修改过得伪c代码: int __thiscall sub_401EA0(CWnd *this) { const char *v1; // eax@1 size_t err_len_2; // esi@19 const char *password; // eax@19 size_t v4; // eax@21 […]