自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 用SSH登陆iOS设备与scp传输文件

Secure Shell(SSH)是建立在应用层基础上的安全协议,用于计算机之间的加密登陆,可以在不安全的网络中为网络服务器提供安全的传输环境。

2024-01-15 13:50:53 552

原创 【攻防世界】Reverse——tt3441810 writeup

这条题目不是考看汇编或c代码的能力,而是考察在16进制数据中找规律。发现有个字符串”HH4$HH“重复出现,把它去掉。得到 :flag{poppopret}H1H<所以flag:poppopret。

2024-01-10 21:47:31 436

原创 【攻防世界】Reverse——re4-unvm-me writeup

【代码】【攻防世界】Reverse——re4-unvm-me writeup。

2024-01-10 21:07:12 408

原创 【攻防世界】Reverse——流浪者

参数inputR的元素作为索引,取得它在aAbcdefghiabcde字符串的数值。最后跟"KanXueCTF2019JustForhappy"做对比。函数,传入包含经过转换后的密码字符整数值的数组。在上面的代码中,获取到的密码字符串(,以进一步验证密码是否符合特定规则。

2024-01-10 20:43:55 339

原创 【攻防世界】Reverse——hackme writeup

代码有点多而且乱,需要小心阅读。但逻辑是简单的:输入字符的长度是22,循环比较输入的每个字符与某个数(v24)做异或然后与byte_6b4270的相应位置的字符做对比。

2024-01-10 16:22:10 361

原创 【攻防世界】Reverse——re2-cpp-is-awesome writeup

这段代码的主要功能是: 把dword_6020c0数组的每个元素作为索引,查找off_6020a0字符串,得到的结果跟输入的字符串做对比。

2024-01-10 15:52:59 323

原创 【攻防世界】Reverse——EasyRE writeup

阅读代码,发现有不少令人困惑的地方,直接阅读汇编代码是更好的选择。main函数的主要功能是:把用户的输入字符串翻转,然后把每个字符加1再跟6做异或,最后跟既定的字符串作比较,相同则显示right。

2024-01-10 15:13:00 346

原创 【攻防世界】Reverse——answer_to_everything writeup

flag是与kdudpeh的sha1值:flag{80ee2a3fe31da904c596d993f7f1de4827c1450a}sha1 得到了一个神秘的二进制文件。寻找文件中的flag,解锁宇宙的秘密。注意:将得到的flag变为flag{XXX}形式提交。

2024-01-10 14:09:51 316

原创 【攻防世界】Reverse——Mysterious writeup

flag的其他字符已经知道,现在要找到变量source的值,因为source是value的字符形式,而value=v4+1,v4=122,所以value=123,source='123'

2024-01-10 13:16:26 373

原创 【攻防世界】Reverse——srm-50 writeup

这个函数主要用于处理一个注册相关的对话框界面。所以flag是:CZ9dmq4c8g9G7bAX。

2024-01-10 11:43:06 352

原创 【攻防世界】Reverse—— dmd-50 writeup

如果用户输入的密钥经过MD5哈希后的值与预设的哈希值匹配,则输出 "Thank you!其功能是接收用户输入的一个密钥(key),并对该密钥进行MD5哈希计算。然后,程序将检查生成的哈希值是否等于预设的固定哈希值。对于这个MD5哈希值进行一系列字节级别的比较,以验证它是否与预设的固定哈希值相匹配。" 并同样返回0作为退出状态码。函数对密钥进行MD5哈希运算,并将结果存储在。然后获取哈希值的C字符串表示形式,存放在变量。首先,程序提示用户输入一个有效的密钥。接着,读取用户输入的密钥并存储在。

2024-01-10 11:00:13 346

原创 【攻防世界】Reverse—— maze writeup

根据上面的代码我们可以知道:因为35在asc_601060的位置是36,所以我们可以知道循环体结束时候v9和v10的所有可能的取值(0,36),(1,28),(2,20),(3,12),(4,4),事实上仅有可能是(4,4),因为v9,v10的取值范围是【0,8)。input_c=111-》v10++,input_c=46-》v9--, input_c=48-》v9++,而且v9,v10的取值范围都是【0,8)我们可以找到一条由(0,0)到(4,4)的通路,下面黄色数字组成,刚好是18个。

2024-01-09 21:30:38 378

原创 【攻防世界】 Reverse—— no-strings-attached writeup

重点是decrypt函数,其他可以不用管。

2024-01-09 17:58:21 351

原创 【攻防世界】Reverse——getit writeup

重点是第一个循环体,后面的不用管跟flag无关。

2024-01-08 22:40:57 319

原创 【攻防世界】Reverse——logmein writeup

【代码】【攻防世界】Reverse——logmein writeup。

2024-01-08 21:46:06 363

原创 【攻防世界】Reverse——simple-unpack writeup

这个程序是UPX加壳过的,可以直接用upx程序脱壳。

2024-01-08 21:43:55 412

原创 【攻防世界】Reverse——re1 writeup

【代码】【攻防世界】Reverse——re1 writeup。

2024-01-08 21:20:04 395

原创 【攻防世界】Reverse——Hello,CTF writeup

根据代码可知:输入长度是17个,把每个字符转换成16进制,然后连在一起得到的字符串等于"437261636b4d654a757374466f7246756e"。

2024-01-08 20:35:47 361

原创 【攻防世界】Reverse——open-source writeup

提交答案时,记得把‘0去掉。

2024-01-08 20:13:35 346

原创 【攻防世界】Reverse——game writeup

j_printFlag是flag输出相关的,但是需要满足条件才能执行。但是我们可以直接分析这个代码,就不用管条件或其他的代码。反编译处理的代码有点错误,事实上v3 = v3+v4+v5。

2024-01-08 19:56:27 324

原创 【攻防世界】Reverse——elrond32 writeup

要使得程序输出“Access granted”,需要sub_8048414函数返回True。上面的代码时负责输出flag的。

2024-01-08 15:06:55 302

原创 【攻防世界】Reverse——re1-100 writeup

该函数创建一个子进程并通过管道进行通信。主要功能是检测调试器的存在,并根据用户输入和预设条件验证特定字符串。创建两个管道(pParentWrite和pParentRead),用于父进程写入数据到子进程以及从子进程读取数据。整个程序设计的主要目的是实现进程间通信,并检测某些特定的安全性或反调试机制。虽然有一大段关于反调试的,但跟flag无关重点是confusekey函数。失败,或在任何过程中出现错误,都会退出程序(exit(1))。注意提交flag时要去掉“{}”。检查程序是否在被调试器运行。

2024-01-08 13:59:27 412

原创 【攻防世界】Reverse——simple-check-100 writeup

上面代码中,check_key负责检查输入的key也就是v8是否正确,若正确则使用interesting_function打印flag。check_key与flag无关,可以忽略,重点是interesting_function.只要check_key返回True(1),那么可以让interesting_function执行,直接输出flag。putchar负责输出flag。上面代码中的v4=a1=v7。而flag_data是全局变量。继续执行,输出flag。

2024-01-08 11:31:31 361

原创 【攻防世界】Reverse——secret-galaxy-300 writeup

但是上面代码中的result并不是我们要的flag,而是byte_40DAC0数组。

2024-01-07 20:47:57 402

原创 【攻防世界】Reverse——parallel-comparator-200 writeup

和 generated_string[i] == just_a_string[i]同时成立,也就是说result是个0向量或全为0的数组。其中只有lucky_hacker_you_are具有意义,所以这就是flag。这道题考察c语言代码阅读能力。注意到下面这连个循环,

2024-01-07 19:55:27 339

原创 【攻防世界】Reverse——BABYRE writeup

在 if ( v5 == 14 && (unsigned int)judge((__int64)s) ) 这行下断点,这时解密方法已经执行,也就是可以跳转到judge函数查看解密后的代码。下面的代码可知:flag的长度是14,通过judge来判断是否成功。但jugde函数是加密过,也就是代码是被混淆过的。所以不可以直接查看。main函数中有下面这段代码,它是用来还原或解密代码的。在“run”后,可看到judge的数值已经发生改变。

2024-01-07 12:25:08 382

原创 【攻防世界】Reverse—— IgniteMe writeup

main函数:首先检查前4个字符是否“EIS{”,如果是,则会进入check函数。如果check返回true,则会显示“Congratulations”该函数的主要目的是检查输入字符串是否满足某种特定格式和加密规则,并返回布尔值表示结果。

2024-01-07 11:15:40 397

原创 【攻防世界】Reverse——easyre-xctf writeup

从它的名字f_part2,那应该会有个part1。但是strings window并没有任何part1类似的名字。应该是从代码产生的。使用exeinfo得知这个exe文件是经过upx加密的。因为是放在栈上的,以小端序存储。把脱壳的exe文件拖到ida进行分析。

2024-01-05 21:34:30 396

原创 【攻防世界】Reverse——toddler_regs writeup

直接从main函数一步步分析会找到fake的step2。于是,首先查看strings windows有没有线索,这个flag会相关吗?

2024-01-05 20:41:46 386

原创 【攻防世界】Reverse——easyEZbaby_app writeup

该程序通过检查输入的用户名和密码,合法则登录成功。题目的答案就是flag{用户名密码}。

2024-01-05 20:35:35 399

原创 【攻防世界】Reverse——ereere writeup

要做逆向,所以先解密newBase64(下面的fromBase64函数),然后再decrypt。这样就很清晰,首先对输入进行加密(encrypt),然后在通过一个修改过的Base64函数(仅仅是修改了表的顺序,这个解密方法我在做mobile easyjni那篇博客上有具体步骤,这里不详细解释)。查看strings window,看到字符串“correct”和“wrong“,猜测字符串所在的位置就是我们要分分析的内容。反编译代码发现代码有点乱,因为大部分变量名是没有意义的,是很难读懂的。

2024-01-05 17:52:37 429

原创 【攻防世界】Reverse——bad_python writeup

发现无法编译成功,结合题目名字bad_python和cpython-36.pyc, 猜测是用python3.6编译的,但是头部被损坏导致uncompyle无法解析。pyc 文件是 Python 在解释执行源代码时生成的一种字节码文件,它包含了源代码的编译结果和相关的元数据信息,以便于 Python 可以更快地加载和执行代码。复制正常文件的头到pyre-cpython-36.pyc,就可以成功编译了。使用下面的代码得到flag。

2024-01-05 13:29:28 420 1

原创 【攻防世界】Reverse——xxxorrr writeup

它的逻辑很简单,就是s1和输入做异或,回调函数调用check函数s1与s2做对比,相同则“Congratulations”。但这样得到的结果是不对的。

2024-01-05 09:45:13 456 1

原创 【攻防世界】Reverse——happyctf writeup

【代码】【攻防世界】Reverse——happyctf writeup。

2024-01-03 19:01:03 485 1

原创 【攻防世界】Reverse——crypt writeup

就是对输入的内容进行处理后与一个数组做对比,相同则输出“nice job”。猜测“nice job"是输入正确答案后的输出,ctrl+x定位到代码。

2024-01-03 18:35:20 450 1

原创 【攻防世界】Reverse——reverse_re3 writeup

这四个函数很相似, 对应二维数组中的上(输入字符w)下(输入字符s)左(输入字符a)右(输入字符d)方向的操作。这就像是玩游戏,上下左右移动,之前我说dword_202020可以看成是[3][15][15]的三位数组,现在我们知道它可以表示一个迷宫游戏的三关,每一关是一个二维数组表示的地图:二维数组中的值:3”表示起点(或现在的位置),“4”是终点,“1”是可通行,“0”是不可通行。其中等于3的一共有三处,也就是每一关的起始位置,从sub_86C函数中获知起始坐标分辨是(1,6),(2,3),(2,1)

2024-01-02 22:54:47 405 1

原创 【攻防世界】Reverse——easyRE1 writeup

很明显这个FLAG就是我们要的答案:flag{db2f62a36a018bce28e46d976e3f9864}。真是题如其名easy。上面的个FLAG是我们要的flag吗?让我们ctrl+x看看。但是让我们还是先看看它的逻辑。

2024-01-02 16:41:53 378 1

原创 【攻防世界】Reverse—— 666 writeup

输入经过encode后需要与enflag('izwhroz""w"v.K".Ni')的值相同。这个flag会是我们要的flag吗?把666文件拖进ida64, 查看它的strings。明显f这个“flag***”不是我们要的答案。

2024-01-02 16:14:04 375 1

原创 【攻防世界】Reverse——Reversing-x64Elf-100 writeup

重点是理解下面的代码:把v3是一个二维数组,每个数组元素是一个字符。循环体内按一定规则取一个字符减去输入的字符串中的某个字符的值,若不为1,则失败。用下面的python代码取得flag。

2024-01-02 15:31:54 521 1

原创 【攻防世界】mobile rememberOther

这个方法主要用于验证用户名和序列号。用户名必须非空,序列号必须非空且长度为16。然后,它会计算用户名的MD5哈希,并与序列号进行比较。如果两者匹配,则返回。但这个并不是答案,在题目的zip文件里还有一个docx文件。所以答案:YOU_KNOW_ANDROID。

2023-12-30 21:49:02 304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除