BUU-不一样的flag(9)
是不是做习惯了常规的逆向题目?试试这道题,看你在能不能在程序中找到真正的flag!注意:flag并非是flag{XXX}形式,就是一个’字符串‘,考验眼力的时候到了! 注意:得到的 flag 请包上 flag{} 提交
先运行一下程序
看样子是一个玩游戏的程序
再看看壳
无壳,是32位的
然后用IDA打开
这个游戏的程序【注释好像没啥用】
差不多就是这样,喊你上下左右移动然后最后是”#”就能得到flag。
看了WP 后知道
走0不走1
得到的222441144222
就是flag
BUU-reverse_3(8)
reverse3 注意:得到的 flag 请包上 flag{} 提交下载下来
随便输入一下,直接退出。
用IDA 打开
找到关键的地方
这里就是输入的东西放到Str,v3是你输入的字符串的长度,v4不知道,然后有一个strncpy 把你输入的东西 经过sub_4110BE 函数曹祖后的值 复制到了Destination 这里,然后 又进行了一次for 循环的操作,最后和e3nifIH9b_C@n@dH这个东西进行对比。
现在的主要关键就是sub_4110BE 这个函数
点进去
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970void *__cdecl sub_411AB0(char *a1, unsigned int a2, int *a3){ int v4; // [esp+D4h] [ebp-38h] int v5; // [esp+D4h] [ebp ...
BUU-helloword(7)
有难的题目,也就有简单的题目,就像程序员一辈子编写的第一个程序,极有可能是helloword,它很普通,但是也很让人怀念。你猜这题flag在哪里?让我们怀念第一次编写的easy程序吧! 注意:得到的 flag 请包上 flag{} 提交
下载下来是一个apk 文件
这个文件 是APK是AndroidPackage的缩写,即Android安装包(apk)。
我用雷电模拟器打开后就是这样的…
使用AndroidKill工具进分析
直接就得到了flag
BUU-xor(6)
题目:or的敌人,and 有个兄弟叫or,or有个敌人叫xor,那么你能帮助or战胜他的敌人xor吗,xor的奥秘就在附件中,开始战斗吧! 注意:得到的 flag 请包上 flag{} 提交
拿到题目,xor 用die 看一下
看到了是一个Mach-064 , mach 不知道是啥,但是知道是64位的。
https://product.pconline.com.cn/itbk/software/os/1112/2610866.html
百度解释:
Mach是一个由卡内基梅隆大学开发的用于支持操作系统研究的操作系统内核,为了用于操作系统之研究,特别是在分布式与并行运算上。是最早实现微核心操作系统的例子之一,是许多其它相似的项目的标准。
这个都是无所谓的,不影响我写这个题。
得知这个是64位的,并且没有壳,用IDA打开
看得出来,我很依赖F5 , 【这里我是用IDA7.7反编译出来的。它和7.0出来的不太一样,但是整体上是差不多的】
12345678910111213141516171819int __cdecl main(int argc, const char **argv, ...
PE文件结构基础(28)
1.PE文件结构简介PE 文件就是windows下可执行文件的总称,常见的有:DLL,EXE,OCX,SYS。
Windows 是如何区分可执行文件的呢?也许你会说文件扩展名,但我要告诉你,这是错误的。因为这个是涉及到PE结构的。
DOS头是用来兼容MS-DOS操作系统的,目标一般是用来指明NT头在文件中的位置
NT头包含windows PE文件的主要信息,其中包括一个‘PE’字样的签名,PE文件头【IMAGE_FILE_HEADER】和PE可选头【IMAGE_OPTIONAL_HEADER32】,头部的详细结构以及其具有意义在PE文件头文章中详细描述
节表是PE文件后续节的描述,windows根据节表的描述加载每个节
节每个节实际上是一个容器,可以包含代码,数据…每个节可以有独立的内存权限,比如代码节默认有读/执行权限,节的名字和数量是可以自己定义的【不一定就是上图中的三个】
当一个PE文件被加载到内存中以后,就称之“映像【image】”,一般来说,PE文件在硬盘上和内存是不完全一样的,被加载到内存以后占用的虚拟地址空间要比硬盘上占用的空间大一些,这是因为:各个节在硬盘上是连续的, ...
GBD插件(27)
主要就是方便了linux 下的调试工具…
不是很会用
有3个插件
https://blog.csdn.net/gatieme/article/details/63254211
BUU-新年快乐(5)
首先用exeinfope.exe来查看壳
讲实话,看不懂只知道了是32位的,直接放入ida中…
很明显,这有问题。有问题当然要百度啦!1[ESP定律]以及UPX壳的特性
在上面的查壳的时候,发现确实有一个upx的东西ok,现在的问题就是脱壳咯拖完壳后,放入ida中
1flag{HappyNewYear!}
BUU-内涵的软件(4)
flag{49d3c93df25caad81232130f3d2ebfad}
进来没有任何思路,它定义了一些东西过后就进行了跳转。我们跟上看看
emmm,看着像flag 提交了一下就对了……看看其他的吧,全是跳转,蒙蔽得很
linux动态调试之GDB(26)
Linux动态调试神器之GDB简介及使用GDB简介这个是在Linux下的一个动态调试,和OD功能上应该差不多。
功能
和OD差不多,但是看不到原文,所以要和IDA一起用
暂停【然后调试】
除此之外,GDB还具有一些独具特色的功能,如命令自动补全功能、命令
行编辑功能、面向对象语言支持(如C++)、多线程支持等。
命令gdb打开文件
1gdb hero
quit退出
也可以用 ctrl+ c【一个消耗时间的】或者 ctrl + d【就是退出,相当于quit】
help可以使用help命令,来得到GDB的帮助信息。
这个help 会大概列出来
然后可以选中一个再help 就可以看到详细的内容。
网鼎杯2020真题-hero首先用010 打开看看
发现是一个elf 文件,去kali里面运行一下
发现大致就是一个闯关打boss的,应该是只要通关就可以得到flag
放入IDA中看看
通过这个字符串搜索找到这个位置
应该就是这里,然后F5一下
这里大概就是能打过boss的战斗力
10000/30000/50000
….
然后找到
每一个跳转语句
知道这个就是一 ...
Windbg(25)
Windbg与Windbg preview简介及使用术语windbg
是在windows平台下,强大的用户态和内核态调试工具
dmp
内存映像文件,一般是系统错误产生的文件
pbd
程序数据库文件
symbol
符号文件(symbol files)是一个数据信息文件,它包含了应用程序二进制文件(比如:exe,dll)调试信息
概述windbg 比 vs 在体型下小,在调试功能上强大。
windbg 还可以用来分析dump 数据 ,还可以调试进程死锁之类的。支持命令的方式。
《Windows用户态程序高效排错》《Windows高级调试》《软件调试》,有机会读读书。
下载csdn 下载
…
以后再说吧。现在不想下。