Home

BCTF2018 Reverse Challenges

BCTF2018 Reverse Challenges

Currently I only worked out 2 of the 3 challenges given. easypt First let’s compile the source code of pt. cd ./processor-trace-master cmake . -DPTDUMP=ON -DPEVENT=ON -DSIDEBAND=ON make sudo make install Then we just need to use ptdump to decode the packet file: cd ./bin chmod +x ./ptdump ./ptdump ./packet […]

[LCTF2018 Reverse] b2w write-up

[LCTF2018 Reverse] b2w write-up

Reverse problem in LCTF2018 held by L-Team from Xidian University. 有三题比较有难度,easyre在比赛期间解出来了,b2w是后来慢慢分析的,单片机逆向没有看。 b2w 题目涉及到一点点计算机图形学的内容,但是算法有点魔幻独特导致最开始没看出来程序到底在干什么。 用IDA载入程序,主要逻辑都在main函数里,大概是将flag目录下的45张bmp图片像素数据读入内存,每张tmp经过黑白二值化、假高斯模糊以及一次奇怪的变换存到一个数组中,最后将45张图片的处理结果稍作加密写入到wav文件的DATA CHUNK中。题目给了一个wav文件,想必是让我们从wav文件还原那45张图片。 ida中经过分析,标注以下函数名: Addr Function 0x400e66 black_and_white 0x400f38 fake_gauss 0x402c7f transform 接下来分析程序对于一张bmp图片的处理过程。 函数 0x400e66 很容易看出来就是二值化;函数 0x400f38 对每个像素x按如下权重计算颜色值: 随后将两次计算的x取平方和赋给中心像素,并且此后竟然又进行了一次二值化处理,加上上图的权重分配,实际上这一番处理对原图的特征基本上没有破坏。 最后一轮处理由transform函数来做,这个函数首先找距离左下角(0,0)最近的黑点A,再在留下的点中找距离A最近的黑点,以此类推,将所有找到的点(x,y)分别存在arr_min_x[]与arr_min_y[]中,完成后等间距取2000个点保存起来(存的是以图像中心点为原点的坐标),接着处理下一张bmp。 所有bmp处理完成后,由0x401C6D负责将保存起来的2000*45个点加密并写出至out.wav的DATA THUNK中,至此程序工作完成,退出。 我们能做的便是根据out.wav的数据还原出arr_min_x[]与arr_min_y[],虽然并不能完整地还原原图,但transform函数实际上可以理解为抽象线条轨迹,因此将两个arr中的点全部绘制出来就可以看到flag了。 import struct, ctypes, os import matplotlib.pyplot as plt magic_string = ‘LCTF{LcTF_1s_S0Oo0Oo_c0o1_6uT_tH1S_iS_n0t_fL4g}’ ms_len = len(magic_string) index […]

HCTF2018_CNSS_WRITEUP

HCTF2018_CNSS_WRITEUP

由 Vidar-Team 举办的一年一度的HCTF线上赛近日落下帷幕,以下是凝聚 CNSS 战队本次线上赛的解题报告。 Reverse LuckyStar base64变表(Upperlower)加密,xor rand序列,与目标数组比较。 import base64 def lst2str(input): ret = ” for each in input: ret+=chr(each) return ret def switch(input): input = list(input) lower = ‘abcdefghijklmnopqrstuvwxyz’ upper = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ for i in range(len(input)): each = input[i] a = lower.find(each) b = upper.find(each) if a!= -1: […]

转帖

转帖

老韩又写了篇文章,觉得写得不错,在此记录一下。 同学们大学有更多的可能,那关乎余生

骇极杯2018_CNSS_WriteUp

骇极杯2018_CNSS_WriteUp

本次比赛最开始只报名了三位同学,并且采用的是风车亦可赛艇队名,但后期参赛成员不止三位。 最终排名是2。 Reverse cpp #coding=utf-8 import copy dst = [153, 176, 135, 158, 112, 232, 65, 68, 5, 4, 139, 154, 116, 188, 85, 88, 181, 97, 142, 54, 172, 9, 89, 229, 97, 221, 62, 63, 185, 21, 237, 213, 0] def trans1(input): s=copy.copy(input) for i in range(len(s)): s[i] […]

Site Change Logs

Site Change Logs

2018/11/22 18:00 Added a hover shadow effect to <pre> code block. 2018/11/13 00:00 Fixed the bug that codes in the <code> block always wrap under iOS’s safari. 2018/11/7 18:09 Added several css styles for blockquote. 2018/11/5 18:20 Removed white-space: pre-wrap; in pre code section of bootstrap.css. Added several table css […]

windows code page 蜜汁 bug

windows code page 蜜汁 bug

Windows 10 Professional system version 17763.55 之前写的程序在codepage 936下控制台输出能正常显示中文,新装的系统中文却都变成了?,最玄学的问题是解决方法竟然是 chcp 到其他的 page 然后再 chcp 回来。 可以添加一个启动项每次自动改: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun Type REG_SZ Value chcp 65001>nul & chcp 936>nul By default, Command Prompt executes on startup whatever it finds in the following two registry values: The AutoRun value in HKLM\Software\Microsoft\Command Processor The AutoRun value […]

护网杯RE补题笔记

护网杯RE补题笔记

太菜了,被卡在 APM233 那题上就一直没能在其他题目中有所进展,只能事后补题了 task_huwang_refinal C++写的VM,0x00001400处的函数为vm_cmp,传入结构体v1[5]的值存储cmp的结果。动态调试可以发现程序首先不断将传入参数的字符与0x30、0x41作比较,实际上是在做如下验证: 0x30(‘0’) <= hashcode <= 0x46(‘F’) 之后会在eax中出现hashcodes的一部分(由string转成了32bit hex),同时esi中出现目标hex,程序对二者进行比较,既然如此那跟着跟着就可以跟出来正确的flag了。 pzhxbz gaygay 说可以写ODbgScript来减轻负担: label: wrt “trace.log”,eax wrta “trace.log”,esi,_with_ run jmp label 用OD调试,传一个48 length的字符串进去,在cmp eax,esi处下断点,跑脚本然后看输出,不断更正输入参数就可以把flag全部套出来了。 输入AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC时的输出: CBAAAAAA_with_EBBAA84D 最终hashcodes:A3448DA9968B93E88CD1ACF7D576BCE6F9C2CD35D48AABBE APM_233

Prezi Next Crack

Prezi Next Crack

Sync 问题 1.7.1 这个版本已经有详尽的破解教程了,但有一个缺陷。Sync的时候经常会卡死导致不能新建project,给出解决方案如下: 首先正常登录,进入到主界面后。 dnspy 修改 PreziNext.Windows.Desktop.Base.dll 的 CheckForFirstStatusAsync 方法,给 IsOnline 强行设置 false。 如果日后再出现问题会考虑K掉login系统,做一个完整离线版。

ChromeBook 折腾小记

ChromeBook 折腾小记

Lenovo N21 ChromeBook 折腾记录 不想装双系统,一个是因为自己装的linux发行版流畅性不及ChromeOS,不码代码的时候浏览网页的体验不佳;另一个是之前有过刷BIOS把芯片烧掉的经历,心有余悸。 于是乖乖用crouton。 最近一次偶然的断电好像把系统文件搞崩了,重装了一次并记录过程如下。 crouton github : https://github.com/dnschneid/crouton 下载crouton,进入 Downloads 目录,执行 sh ./crouton -x 解包,修改 crouton.unbundle/targets/audio 文件第47行: ( wget -O “$archive” “$urlbase/$ADHD_HEAD.tar.gz” 2>&1 \ || echo “Error fetching CRAS” ) | tee “$log” 改为: ( wget -O “$archive” “https://yype.site/Posts/others/ChromeBook.assets/audio.tar.gz” 2>&1 \ || echo “Error fetching CRAS” ) […]