10 2018 档案

摘要:0x00 前言 对于脱壳后的程序往往不能直接运行,这是因为它们很多都没有重建输入表。当然用的od脱壳可能可以。重建输入表一般都是用专业软件比如ImportREC。但是对于逆向研究者来说会自己重讲输入表是必须的技能。这就需要读者对前面几篇所讲的PE文件格式非常熟悉。 0x01 寻找OEP脱壳脱壳 前面 阅读全文
posted @ 2018-10-29 15:23 2f28 阅读(732) 评论(0) 推荐(0)
摘要:0x00 前言 上一篇介绍了壳程序的加载过程以及通过两次内存断点法寻找OEP,这篇我们将利用新的的方法——堆栈平衡法来寻找OEP。 0x01 堆栈平衡法原理 堆栈平衡原理就是利用壳程序在运行前后需要保存和恢复原程序的堆栈环境来实现的。我们可以把壳程序当作一个子程序,调用这个子程序前,肯定需要保存原程 阅读全文
posted @ 2018-10-26 14:58 2f28 阅读(1913) 评论(0) 推荐(0)
摘要:0x00 前言 对于加壳程序第一件事就是要找到OEP(oringinal Entry point),由于加壳的缘故,当PE文件载入OD或者其他调试软件时进入的的往往是壳程序的入口地址。所以要进行逆向分析第一步就必须找到PE程序的原始入口点。 0x01 壳的加载过程 壳和病毒在某些方面比较类似,都需要 阅读全文
posted @ 2018-10-26 11:40 2f28 阅读(1771) 评论(0) 推荐(0)
摘要:0x00 前言 前面了解了PE文件的输入和输出,今天来看看另一个重要的结构——资源。资源结构是很典型的树形结构,层层查找,最终找到资源位置。 0x01 资源结构介绍 Windows程序的各种界面成为资源,包括加速键,位图,光标,对话框,图标,菜单,串标,工具栏,版本信息等等,在所有的PE文件中资源结 阅读全文
posted @ 2018-10-23 14:33 2f28 阅读(2284) 评论(0) 推荐(3)
摘要:PE文件格式详解(七) Ox00 前言 前面好几篇在讲输入表,今天要讲的是输出表和地址的是地址重定位。有了前面的基础,其实对于怎么找输出表地址重定位的表已经非常熟悉了。 0x01 输出表结构 当创建一个DLL文件时,实际上创建了一组能让EXE或者其他DLL调用的一组函数,PE装载器根据DLL文件中输 阅读全文
posted @ 2018-10-22 16:46 2f28 阅读(2270) 评论(0) 推荐(0)
摘要:0x00 前言 前面两篇讲到了输出表的内容以及涉及如何在hexWorkShop中找到输出表及输入DLL,感觉有几个地方还是没有理解好,比如由数据目录表DataDirectory[16]找到输出表表后以为找到输入DLL就完了,其实这一流程的最终功能是通过输入DLL找到输入DLL调用的函数,这一步骤是通 阅读全文
posted @ 2018-10-21 11:04 2f28 阅读(2504) 评论(0) 推荐(0)
摘要:0x00 前言 前一篇了解了区块虚拟地址和文件地址转换的相关知识,这一篇该把我们所学拿出来用用了。这篇我们将了解更为重要的一个知识点——输入表和输出表的知识。 0x01 输入表 首先我们有疑问。这个输入表是啥?为啥有输入表?其实输入表就是记录PE输入函数相关信息的一张表。那为什么要有这张表?答:原来 阅读全文
posted @ 2018-10-19 21:42 2f28 阅读(3280) 评论(0) 推荐(0)
摘要:0x00 前言 上一篇介绍了区块表的信息,以及如何在hexwrokshop找到区块表。接下来,我们继续深入了解区块,并且学会文件偏移和虚拟地址转换的知识。 0x01 区块对齐值 首先我们要知道啥事区块对齐?为啥要区块对齐?这个问题其实困扰了我很久,只能怪我操作系统没学好。。。我现在的理解是由于内存和 阅读全文
posted @ 2018-10-19 19:25 2f28 阅读(3404) 评论(0) 推荐(0)
摘要:0x01 前言 上一篇讲到了数据目录表的结构和怎找到到数据目录表(DataDirectory[16]),这篇我们我来讲讲数据目录表后面的另一个结构——区块表。 0x01 区块 区块就是PE载入器将PE文件载入后,将PE文件分割成若干块,每块包含不同的信息,由读写数据块.data,代码块.code,只 阅读全文
posted @ 2018-10-19 16:48 2f28 阅读(3928) 评论(0) 推荐(1)
摘要:0x00 前言 上一篇讲到了PE文件头的中IMAGE_FILE_HEADER结构的第二个结构,今天从IMAGE_FILE_HEADER中第三个结构sizeOfOptionalHeader讲起。这个字段的结构名也叫做IMAGE_OPTIONAL_HEDAER讲起。 0x01 IMAGE_OPTIONA 阅读全文
posted @ 2018-10-19 14:56 2f28 阅读(6227) 评论(0) 推荐(2)
摘要:PE文件格式介绍(一) 0x00 前言 PE文件是portable File Format(可移植文件)的简写,我们比较熟悉的DLL和exe文件都是PE文件。了解PE文件格式有助于加深对操作系统的理解,掌握可执行文件的数据结构机器运行机制,对于逆向破解,加壳等安全方面方面的同学极其重要。接下来我将通 阅读全文
posted @ 2018-10-16 22:01 2f28 阅读(27027) 评论(0) 推荐(3)
摘要:0x00 前言 c++中的复杂声明往往令人无法下手,经常使人搞错这到底声明的是一个指针还是指针函数。但其实c++对于复杂声明是遵循一定的规则的,叫做变量名—>右--左-右规则。 0x01 规则解释 对于复杂定义最好的处理方式是从中间开始向外扩展。“从中间开始的”的意思是从变量名开始。“向外扩展”的意 阅读全文
posted @ 2018-10-15 21:46 2f28 阅读(580) 评论(0) 推荐(0)
摘要:0x00 前言 ::是运算符中等级最高的,它分为三种:全局作用域符,类作用域符,命名空间作用域符 0x01 ::作用域运算符的作用 全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如: char zhou; //全局变量 void sleep() { char zho 阅读全文
posted @ 2018-10-15 19:01 2f28 阅读(1322) 评论(0) 推荐(0)
摘要:0x00 前言 这段时间学习c++,发现c++与Java之间存在很多的共性与区别,其中继承就是一大共性。但是令我疑惑的是c++居然支持多继承,相对应的java继承只能有一个。Java不支持多继承但是可以通过接口一样可以实现多继承的功能。 0x01 c++多继承使用 一个类有多个基类,那么这种继承关系 阅读全文
posted @ 2018-10-14 21:07 2f28 阅读(990) 评论(0) 推荐(0)
摘要:0X00 前言 所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。 0x01 与C语言区别 <iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者 阅读全文
posted @ 2018-10-14 15:56 2f28 阅读(1378) 评论(0) 推荐(0)
摘要:转自:https://www.cnblogs.com/huhewei/p/6080143.html 一、概述 __stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。 二、调用协议常用场合 __s 阅读全文
posted @ 2018-10-11 09:54 2f28 阅读(231) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/gstormspire/article/details/8183598 https://blog.csdn.net/cqf539/article/details/6711885 (感觉自己还是太菜了,以前这方面的知识完全没有接触过,今天这篇文章看了一 阅读全文
posted @ 2018-10-08 20:03 2f28 阅读(3755) 评论(1) 推荐(0)
摘要:前言:对于经常接触逆向或者汇编的肯定都对push ebp,mov ebp, esp这两句印象深刻,由于他们经常出现在过程的开头,这也是找段首的一个依据,但是,过程为啥总要以这两句开头,这其中又有什么道理呢? 参考自:https://www.cnblogs.com/mengfanrong/p/5421 阅读全文
posted @ 2018-10-07 20:05 2f28 阅读(597) 评论(0) 推荐(0)
摘要:0x00 调用call指令 执行该指令转向目的地的地址所指示的过程,并且这个过程执行完毕后,仍然返回到CALL指令的下一条指令地址,取指令继续执行原来的程序,因而也叫做过程调用指令。当然,该指令执行时,CPU首先将断点(IP或者CS:IP压入栈),然后以新的目的地址(即过程指令的首地址)装入IP或者 阅读全文
posted @ 2018-10-07 18:51 2f28 阅读(2761) 评论(2) 推荐(2)
摘要:转自:https://www.cnblogs.com/douJiangYouTiao888/p/6473874.html 函数出现时间: escape() javascript 1.0 encodeURI() javascript 1.5 encodeURIComponent() javascrip 阅读全文
posted @ 2018-10-06 20:59 2f28 阅读(2888) 评论(0) 推荐(0)
摘要:前言:之前一直就好奇这个问题,但是一直没解决,今天我总算明白了,感谢大佬们的科普 转自:https://blog.csdn.net/Deft_MKJing/article/details/79460485 1.ASCII 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有 阅读全文
posted @ 2018-10-06 20:47 2f28 阅读(383) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/zp357252539/article/details/79084480/ 在Windows平台下,进入DOS窗口,输入:chcp 可以得到操作系统的代码页信息,你可以从控制面板的语言选项中查看代码页对应的详细的字符集信息。 例如: 我的活动代码页为 阅读全文
posted @ 2018-10-06 20:00 2f28 阅读(6852) 评论(0) 推荐(1)
摘要:转自:http://foryougeljh.iteye.com/blog/1456706 一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址 "http://www.abc.com",但是没有希腊字母的网址"http://www.aβγ. 阅读全文
posted @ 2018-10-06 19:51 2f28 阅读(726) 评论(0) 推荐(0)
摘要:参考:https://www.cnblogs.com/zhangpengnike/p/5545715.html 阅读全文
posted @ 2018-10-06 17:13 2f28 阅读(137) 评论(0) 推荐(0)
摘要:加法指令 ADD (addition) 指令对标志位的影响: CF=1 最高有效位向高位有进位 CF=0 最高有效位向高位无进位 OF=1 两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反。 OF=0 两个不同符号数相加,或同符号数相加,结果符号与其相同。 带进位加法指令 ADC ( 阅读全文
posted @ 2018-10-06 11:57 2f28 阅读(5955) 评论(0) 推荐(0)
摘要:参考:http://www.runoob.com/cplusplus/cpp-basic-input-output.html 阅读全文
posted @ 2018-10-05 21:12 2f28 阅读(138) 评论(0) 推荐(0)
摘要:首先推荐用用C++的stringstream。 主要原因是操作简单。 0x00 字符串转数字 0x01 字符串转数字 阅读全文
posted @ 2018-10-05 21:08 2f28 阅读(2178) 评论(0) 推荐(0)
摘要:转自csdn:https://blog.csdn.net/xiaoyuai1234/article/details/51518159 阅读全文
posted @ 2018-10-05 12:59 2f28 阅读(499) 评论(0) 推荐(0)
摘要:0x00 前言 由于我是这几天才开始接触隐写这种东西,所以作为新手我想记录一下刚刚所学。这道CTF所需的知识点包括了图片的内容隐藏,mp3隐写,base64解密,当铺解密,可能用到的工具包括binwalk,MP3Stego等。 题目链接:http://ctf5.shiyanbar.com/stega 阅读全文
posted @ 2018-10-04 13:17 2f28 阅读(961) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/zjq_1314520/article/details/53830349 阅读全文
posted @ 2018-10-03 20:04 2f28 阅读(500) 评论(0) 推荐(0)
摘要:0x00 outguess下载安装 Kail终端命令输入git clone https://github.com/crorvick/outguess 安装包随即下载到文件夹。双击打开文件夹,右键点击空白区域选终端打开。 随后输入以下命令./configure && make && make inst 阅读全文
posted @ 2018-10-03 18:01 2f28 阅读(17562) 评论(0) 推荐(1)
摘要:0x00 前言 今天在实验吧看到一个图片隐写的题目,用了stegslove和winHex分析一通发现并没有什么有效信息。看了评论区大佬的提示说用到了F5隐写工具,所以百度教程用了一下,发现确实解决了问题。 解题链接:http://www.shiyanbar.com/ctf/1938 0x01 F5下 阅读全文
posted @ 2018-10-03 14:59 2f28 阅读(3377) 评论(0) 推荐(1)
摘要:0x00 前言 之前用吾爱的xp虚拟机,总是装不上vmtools,真是难受。每次跨机器粘贴复制都一件极其痛苦的事,而且虚拟机还不能直接浏览硬盘上的文件。虽说安全性保证了,但是这是真的痛苦。这两天开始用kail,发现Linux系统真是好用,而且工具完备。我特么吹爆!但是由于不熟悉的原因我也一直没有装上 阅读全文
posted @ 2018-10-03 12:23 2f28 阅读(548) 评论(1) 推荐(0)
摘要:常见文件格式的文件头数值 JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif),文件头:49492A00 Windows Bitmap (bmp),文件头:424D CAD (dwg),文件头:4 阅读全文
posted @ 2018-10-02 19:27 2f28 阅读(2393) 评论(0) 推荐(0)
摘要:0x00源更新 0x01更新指令 apt-get clean //清除缓存索引 apt-get update //更新索引文件 0x02 内核更新 apt-get install kali-linux-all //安装所有kali工具包 apt-get install linux-headers-$ 阅读全文
posted @ 2018-10-02 14:00 2f28 阅读(1174) 评论(0) 推荐(0)
摘要:0x00Binwalk介绍 Binwalk是用于搜索给定二进制镜像文件以获取嵌入的文件和代码的工具。 具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。 Binwalk使用libmagic库,因此它与Unix文件实用程序创建的魔数签名兼容。 Binwalk还包括一个自定义魔数签名文件,其中包含常 阅读全文
posted @ 2018-10-02 13:59 2f28 阅读(7183) 评论(0) 推荐(0)