Tan's Blog.

Tan's Blog.

Tough life needs no explanation

Web:BasicFileInclude
BasicFileInclude解题思路看到题目,可以知道这是一个文件包含漏洞的题,打开网址有两个活动页面(Home、Flag),很明显要找的东西在Flag页面。点击Flag页面,出现一句话”ha ha? you want flag? flag is here, but don’t let you see! “flag的内容被隐藏了,要想获取隐藏的信息就需要使用php伪协议,比如说经常使用的伪协议php://filter,一般用于任意文件读取。php://filter有以下几个参数: 名称 描述 resource=<要过滤的数据流> 这个参数是必须的。它指定了你...
304Challenge:代码分析3
sub_E90代码分析继续分析接下来的switch分支情况123456789101112131415161718192021222324252627 case 144: goto LABEL_38; case 145: if ( !*((_DWORD *)v1 + 10) ) goto LABEL_38; return v2; case 146: if ( !*((_DWORD *)v1 + 10) ) return v2; goto LABEL_38; ...
304Challenge:虚拟机指令执行
虚拟机指令的执行执行流程图总结昨天的算法,我画了一个图以更直观的表示出执行过程。 整数算术运算指令今天先来学习下基本的加减乘除指令是怎样执行的? 指令 含义 操作码 ADD $R1,$R2,$R3 $R1=$R2+$R3 16 SUB $R1,$R2,$R3 $R1=$R2-R3 18 MULT $R1,$R2,$R3 $R1=$R2*$R3 20 DIV $R1,$R2,$R3,$R4 $R1=$R3/$R4和$R2=$R3%$R4 22,24 下面的代码部分就是这些操作的执行过程。123456789ADD: R[RAM[R[$IP]+1]]=R[RAM...
304Challenge:虚拟机的实现
为了进一步了解虚拟机是如何解释执行任意一段与当前指令集相符的程序,阅读了一篇关于基于寄存器的的虚拟机实现的相关文章。 虚拟机的设计与实现虚拟机原理虚拟机用软件模拟指令在硬件机器中执行的全过程,即先从磁盘中读取字节码文件 ,存储到虚拟机开辟的内存段中,再将指令加载到虚拟机寄存器并予以执行。它并不是指某个特定的软件 ,而是一整套完整的规范,可以用不同的程序设计语言在不同的硬件平台上实现。不论是硬件机器还是虚拟机系统 ,只要遵循相同的规范,即可运行遵循该规范的可执行代码。 两种处理器引擎Stack-Based虚拟机在运行时对系统资源的消耗要远小于Register-Based虚拟机 ,但堆栈将会...
304Challenge:反汇编算法
今天偶然在图书馆发现一本《IDA PRO权威指南》,我上回搜还没有,原来是图书馆查询系统还要区别大小写,哼~既然想了解机器指令是如何转为汇编指令的,那就需要了解基本的反汇编算法。 反汇编算法算法思路第一步,确定进行反汇编的代码区域对于一个反汇编可执行文件,通常指令与数据混杂在一起,首先要做的就是区分它们。对于Unix系统常用的可执行和链接格式和Windows系统下的可移植可执行格式的文件,这些格式通常含有一种机制,表现为层次文件头的形式,来确定文件中包含代码和代码入口点的位置。 第二步,获取指令和操作数找到指令的起始地址后,需要读取该地址所包含的值,并执行一次表查找,将操作码和助记符对应...
304Challenge:代码分析2
main函数继续分析main函数,昨天分析了main函数的前一部分,把文件内容以二进制形式读取到v4中,之后令unk_202014 = 1,进入一个循环中,调用sub_E90函数,传参v4。打开sub_E90的伪代码,发现一堆形式上有些类似的代码,猜测可能是指令集吧。sub_E90有许多switch条件选择语句,通过不同的匹配执行不同的操作指令,将二进制指令转化为汇编指令,并执行。接下来我将会依据sub_E90中的一些语句,搜集机器指令转为汇编指令的资料。 关于指令机器指令机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成,操作码指出...
304Challenge:代码分析1
main函数今天对main函数的汇编代码结合伪代码进行分析,使用F5大法生成伪代码。1234567891011121314151617181920212223242526char *v4; // rbx int v5; // eax if ( a4 == 2 ) { signal(2, (__sighandler_t)handler); v4 = sub_CE0(a1[1]); unk_202014 = 1; while ( 1 ) { v5 = sub_E90(v4); if ( v5 ) bre...
304Challenge:nc命令 & Telnet
仔细读题,发现题目中给出一个公网可访问的示例,来方便测试与查看效果。使用的是nc命令,第一次接触这个命令,先做一个了解。 nc命令什么是ncnc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具 nc的作用(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口(2)端口的扫描,nc可以作为client发起TCP或UDP连接(3)机器之间传输文件(4)机器之间网络测速 基本使用想要连接到某处:1nc[-options]hostnameport[s][ports]... 绑定端口等待连接:1nc...
304Challenge:预备知识
virtual machine虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机。 虚拟机的分类现在对虚拟机技术有很多种分类方式,我简单了解了其中一种分类方式:.按照虚拟机系统对上层应用所提供接口的不同,形成了不同层次的虚拟机技术,主要包括硬件抽象层虚拟机、操作系统层虚拟机、API(应用程序编程接口,Application Programming Interface)层虚...
Challenge:Phase6
Phase 6解题思路123456788048db4: 56 push %esi 8048db5: 53 push %ebx 8048db6: 83 ec 44 sub $0x44,%esp 8048db9: 8d 44 24 10 lea 0x10(%esp),%eax 8048dbd: 89 44 24 04 mov %eax,0x4(%esp) 8048dc1: 8b 44 24 50 mov ...
avatar
Yolanda
witness me