Home

[RE] jiubugaosuni

[RE] jiubugaosuni

吾爱破解论坛2019新春解题领红包之三 keygen https://www.52pojie.cn/thread-862239-1-1.html #coding=utf-8 import base64 from cryptography.hazmat.primitives import padding, hashes from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend backend = default_backend() uid = input(‘uid:’) digest = hashes.Hash(hashes.SHA1(), backend=default_backend()) digest.update(uid.encode(‘utf-8’)) iv = key = digest.finalize()[0:16] cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend) encryptor = cipher.encryptor() padder = padding.PKCS7(128).padder() secret = […]

水果6s电池续命记录

水果6s电池续命记录

又至寒冬,陪伴我多年的水果6s彻底趴下了,每次从温暖的室内出去就能看见它的电量以肉眼可见的速度降至1%,然后关机。 本来觉着还能凑合用,然而前几天长跑途中在10.58km时它竟然关机了,好在跑步软件 keep 没给弄丢跑步数据,但这也让我下决心去换换它的电池。 于是去某宝掏了已经观察多年的攻城狮电池,收到货后按照草包网的6s电池更换教程进行了更换,虽然最后用上了新电池但途中还是有许多坑点被我踩到了,尤其需要注意的是: 电池背部的易拉胶,开始拉的时候一定要轻,一定要轻,一定要轻。 装易拉胶,一定要记得正确朝向,不要装反。 易拉胶刚开始拉的时候是最容易断的,到后面反而不容易断了。没错,我在拉出来第一根胶带后涨了自信,于是第二根胶带从一开始就使劲儿拉,结果它也很仗义地断了。于是只能用吹风机加热后盖,用小卡片慢慢翘电池。 ↑ 被翘到毁容的原电池 新电池的易拉胶我也给装反了,直接后果就是我应该没有机会再为6s续命了——现在的胶带头位置不太方便拉扯,正确的位置是有震动器留下的空位方便拉扯胶带的。 其余拆机应该注意的事项就不多说了,螺丝的大小不全一样,准备张白纸,大致画下电路图并留空位方便放置拆卸下来的螺丝。新电池的质量十分令人满意,我的水果6s又活过来了。

BCTF2018 Reverse Challenges

BCTF2018 Reverse Challenges

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 > out.txt For the dumped file out.txt, mainly focus on tnt […]

[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