攻防世界
RE
__ys
无
展开
-
攻防世界 serial-150 wp
serial-150(IDA远程动调Linux文件)此题只记录方法,思考分析过程省略…在Linux中准备linux_server64和待调试的文件其中linux_server64在IDA目录的dbgsrv文件夹启动linux_server64代码:chmod +x linux_server64./linux_server64注意:要在linux_server64下打开终端在IDA中选择调试器对调试器进行配置最上方两栏填写待调试文件地址第三栏填写待调试文件所在文件夹原创 2021-02-03 15:29:45 · 335 阅读 · 1 评论 -
攻防世界 simple-check-100
simple-check-100(Linux下的gdb调试)先把exe文件丢进IDA很明显check_key()函数很关键,跟进check_key()函数??? 疑惑,这是能暴力破解的?于是跟进interesting_function()函数发现与输入的key没有关系,而且函数参数是已知的,猜测与flag有关丢进OD中看看由于这里没有开地址随机化,我们根据IDA中main函数的地址就可以在OD中快速找到main函数CTRL+G寻址,下断点将je跳转处的Z标记改为0,跳过chec原创 2021-01-27 13:47:49 · 572 阅读 · 0 评论 -
攻防世界 parallel-comparator-200 wp
parallel-comparator-200居然直接给源代码直接开始分析#include <stdlib.h>#include <stdio.h>#include <pthread.h>#define FLAG_LEN 20void * checking(void *arg) { char *result = malloc(sizeof(char)); char *argument = (char *)arg; *result原创 2021-01-22 20:51:32 · 138 阅读 · 1 评论 -
攻防世界 BABYRE wp
BABYRE丢进IDA,进入main函数很明显judge函数是关键,但显然judge函数被加密了而加密关键在main函数中有所体现很明显这是在调用judge函数之前改变了他的字节码,因此出现调用失败的情况,此时我们只需要用IDA Python进行解密即可代码如下:之后先undefine(快捷键U)一下,再重新创建函数(快捷键P),就可以F5了(此处代码可能与网上其他wp中代码不同,可能是IDA7.5的原因,但经过分析其实是一样的)分析过后发现就是简单的异或,写脚本得到flag即可原创 2021-01-21 20:26:47 · 372 阅读 · 0 评论 -
功放世界 debug
debug拿到exe文件丢进Exeinfo PE发现是.net文件(IDA无法分析),于是通过百度晓得了dnSpy这个神器用dnSpy进行分析,找到相关代码(当知道部分代码段时,可以使用全局搜索找到相关代码)通过简单分析可知这是一个明文比较,于是F5进行调试(这个软件的快捷键与VS相同,不熟悉也可手动),直接得到flagflag{967DDDFBCD32C1F53527C221D9E40A0B}...原创 2021-01-18 14:01:00 · 624 阅读 · 0 评论 -
攻防世界 answer_to_everything wp
answer_to_everything丢进IDA 进入main函数发现not_the_flag()函数很可疑,跟进一下这里发现输入应该为 ‘*’(但这与这道题似乎没什么关系)然后就是木有任何思路,于是我就把这几个字符串都输进去试了一试,发现都不对又看到Submit without any tags于是提交了一下kdudpeh(去掉了**#**),然而还是不行。这时我瞅了一眼题目描述,发现了sha1。我也不知道是啥东西,百度了一下发现这是一个加密算法,于是我把 kdudpeh 在线加密原创 2020-12-21 22:15:35 · 289 阅读 · 0 评论 -
攻防世界 hackme wp
hackme丢进IDA通过shift+F12搜索字符串进入main函数简单分析一波发现flag长度为22,但是接下来 sub_406D90() 很奇怪,很明显是分析不出来的。于是我动态调试了一下发现每一次v7的值都不一样,因此我猜测 sub_406D90() 应该是个随机数函数。这样就好办了。我们理一下思路,发现do while循环就是每次取输入字符串的某个字符,进行一系列操作,判断是否与 byte_6B4270[] 中相同位置的字符相等,不相等则flag错误。由于 byte_6B427原创 2020-12-20 19:48:00 · 159 阅读 · 1 评论 -
攻防世界 Reversing-x64Elf-100 wp
Reversing-x64Elf-100丢进IDA,进入main函数发现flag应该与sub_4006FD有关,跟进一下经过分析,写一手脚本得到flag#include<bits/stdc++.h>using namespace std; char v3[3][8] ={"Dufhbmf","pG`imos","ewUglpt"};string flag;int main(){ for (int i = 0; i <= 11; ++i ) flag += v原创 2020-12-20 18:11:00 · 235 阅读 · 0 评论 -
攻防世界 srm-50 wp
srm-50(学汇编到自闭后做的水题 )拿到exe文件先查壳无壳丢入IDA中首先这里是winmain(),关于这个先普及一下知识因此相关代码与DialogFunc相关以上定义是我在做完此题后问的度娘,在做时并不清楚这些。我们可以直接shift+F12查找字符串address进入DialogFunc中进入后进行F5反编译后发现我猜测第一个if应该是与E-Mail有关,随后在输入框中输入因此密码应该与第二个if有关,写脚本得flag#include<bits/stdc原创 2020-12-13 17:24:32 · 229 阅读 · 1 评论 -
攻防世界 re-for-50-plz-50 wp
re-for-50-plz-50丢进IDA,进入主函数发现无法F5,从网上查阅资料后得知这是一个MIPS代码MIPS也不看不懂啊,只能学一波(推荐:这里)看了一会后发现这不就是个异或吗……其实只需要关注这三部分代码即可(beq是判断$v1 = $v2,如果相等则进入loc_401428)然后就是写脚本了#include<bits/stdc++.h>using namespace std;char a[]={"cbtcqLUBChERV[[Nh@_X^D]X_YPV[C原创 2020-12-09 22:01:03 · 126 阅读 · 0 评论 -
攻防世界 Shuffle wp
Shuffle丢入IDA,进入主函数发现一波随机化,但是题目描述是这就很明显了,分析一下可以知道flag即为上方的数据得到flagSECCON{Welcome to the SECCON 2014 CTF!}原创 2020-12-09 21:04:25 · 148 阅读 · 0 评论 -
攻防世界 Guess-the-Number wp
Guess-the-Number首先得到一个.jar文件,丢入jd-gui中有题目描述以及代码分析可知,输入以下代码可直接得到flagjava -jar 6a8bee79ee404194bb8a213a8a0e211d.jar 309137378注:一定要在.jar文件所在位置输入代码当然此题也可以直接转化为python代码进行字符串异或得到flag(转化为16进制字符串)但是没必要...原创 2020-12-08 21:08:54 · 181 阅读 · 0 评论 -
攻防世界 IgniteMe wp
IgniteMe丢入IDA,进入main函数发现flag是由EIS原创 2020-12-08 20:21:09 · 449 阅读 · 2 评论 -
攻防世界 Mysterious wp
攻防世界 Mysteriousexeinfope查壳发现无壳载入IDA,进入主函数里面有一些没见过的函数,通过百度atoi 是把字符串转换成整型数的一个函数。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小原创 2020-12-07 17:41:15 · 385 阅读 · 0 评论 -
攻防世界 simple-unpack(脱壳)wp
第一次接触被加壳的二进制文件查壳准备工具:exeinfo pe, IDA, upx首先用exeinfo pe查壳发现有upx壳注:windows下的文件是PE文件,Linux/Unix下的文件是ELF文件查壳在upx-3.96-win64路径下用upx -d进行脱壳3丢到IDA中搜索字符串flag可以轻易得出结束自己的第一道被加壳的二进制文件题目...原创 2020-11-14 13:25:09 · 459 阅读 · 0 评论 -
攻防世界 logmein wp
一个基本的算法逆向拿到文件后直接丢到IDA中发现程序需要运行到sub_4007F0()对应的是正确的flag此题主要考察如何将long long型转化为字符串(写代码,强制类型转化就直接出来了 手动转换详见此处)#include<bits/stdc++.h>using namespace std;char v8[8];long long v7=28537194573619560;int main(){ char *a=(char *)&v7;//将v7转化为字符串原创 2020-11-14 13:25:01 · 256 阅读 · 0 评论 -
攻防世界 insanity wp
简单的题目先把文件丢进IDA进入main函数后发现strs[]可能与flag有关,跟进一下发现猜测9447{This_is_a_flag}与flag有关 (shift+F12可查看main函数的字符串形式)最后确认flag为9447{This_is_a_flag}原创 2020-11-14 13:24:55 · 163 阅读 · 0 评论 -
攻防世界 game wp
game运行exe翻译一下发现是需要让/都变成-(0变为1)此时我熟练的输入12345678结果得到了flag2.丢进IDA发现sub_457AB4()可能与flag有关,跟进一下发现发现flag可能与异或运算有关(异或的逆运算也是异或)写一个cpp#include<bits/stdc++.h>using namespace std;char v59[]={18,64,98,5,2,4,6,3,6,48,49,65,32,12,48,65,31,78,62,32,49原创 2020-11-14 13:24:43 · 171 阅读 · 0 评论 -
攻防世界 re1 wp
re1(真入门 )丢入IDA分析得知v9是输入的flag,然后将v5与v9进行比较,相等则输入flag get因此v5即是所需flag追踪v5回到main函数后发现、movdqu xmm0, ds:xmmword_413E34movdqu [ebp+var_44], xmm0为对v5的赋值于是进入xmmword_413E34然后就是讲16进制转化为字符串得到flag(因为汇编里面存储字符是采用小端格式,所以结果倒过来输就行)DUTCTF{We1c0met0DUTCTF原创 2020-11-14 13:24:38 · 166 阅读 · 0 评论 -
攻防世界 getit wp
getit丢进IDA进入主函数通过分析可得 t[]为flag(似乎是猜测 )又发现其与s[]有关写个脚本模拟一下#include<bits/stdc++.h>using namespace std;char s[]={"c61b68366edeb7bdce3c6820314b7498"};char t[100];int v5=0,v3;int main(){ while ( v5 < strlen(s) ) { if ( v5 &原创 2020-11-14 13:24:32 · 171 阅读 · 0 评论 -
攻防世界 python-trade wp
python-trade第一道python反编译的题目得到.pyc文件将.pyc文件反编译得到.py文件(可以使用https://tool.lu/pyc/)分析代码我们发现程序对flag进行一系列操作使其变为’XlNkVmtUI1MgXWBZXCFeKY+AaXNt’因此我们只需要反过来执行即可此处注意:在python2中使用ord(i) - 16不会出错,在python3中使用会出错这是因为ord()这个函数接受的类型是一个长度为1的字符串,而在python3当中传入的i已经是一个原创 2020-11-14 13:24:26 · 268 阅读 · 0 评论 -
攻防世界 no-strings-attached wp
no-strings-attached丢进IDA进入main函数后发现主函数极其简单经过初步分析后会发现authenticate()是关键,跟进一下此时我们可以得出flag与s2有关,于是跟进decrypt()通过分析可知:需要得知s[]与a2[]数组的值写脚本(IDApy很好用) 借鉴某wp(主要是自己写的没了,懒)之后就是写脚本得到flag了9447{you_are_an_international_mystery}...原创 2020-11-14 13:24:13 · 205 阅读 · 0 评论 -
攻防世界 csaw2013reversing2 wp
csaw2013reversing2——第一个动态调试题目首先运行程序发现是乱码由题目知运行就能拿到flag,那就直接载入OD动态调试一直F8单步运行来确定弹窗的位置发现执行到这里时出现弹窗于是下断点后,F9直接运行至断点,F7进入call,然后F8单步在这里发现jnz未跳转,je跳转(有关跳转知识请见这里)此后分析可知程序执行的是错误路径,于是把断点改在jnz处并通过修改Z标志位让他跳转(jnz是当Z标志位为0时跳转)继续F8单步运行到int3处发现退出,重载程序并将它nop掉(原创 2020-11-14 13:24:05 · 247 阅读 · 0 评论 -
攻防世界 maze wp
maze(二维迷宫问题)丢进IDA通过对这两处的分析可知是一个二维数组(8*8)即可看做之后对源代码进行分析__int64 __fastcall main(__int64 a1, char **a2, char **a3){ signed __int64 v3; // rbx signed int v4; // eax bool v5; // bp bool v6; // al const char *v7; // rdi __int64 v9; // [rsp原创 2020-11-14 13:23:59 · 141 阅读 · 0 评论 -
攻防世界 Hello, CTF wp
Hello, CTF从题目可知flag一定加密或者编码过丢进IDA中分析发现sub_40134B((int)aSuccess, v7);通过对程序的分析可以得出v13即为flag然后就是将16进制转化为字符串类型,贴一个Python代码(也可在线转化 )x='437261636b4d654a757374466f7246756e' y='' i=0while(i<len(x)): y+=chr(int(x[i:i+2],16)) i+=2print(y)原创 2020-11-14 13:23:37 · 253 阅读 · 0 评论