Hitomi's Note

瞳の笔记

快速幂与大数取模

发布于|# ACM# Tips

快速幂 原理 复杂度:$ \Theta (n) \rightarrow \Theta (log_2n) $ $$ a^{11}=a^{2^0+2^1+2^3}=a^{2^0} \times a^{2^1} \times a^{2^3} $$ 只要把指数位拆分,就可以实现复杂度的骤减。 实现思路 拆分二进制,取出每一位上的值。(移位) 如果值为 1 ,则乘。 实现代码 int fast_pow(int a, int b) { int ans = 1, base = a; while (b > 0) { if (b & 1) ans *= base; base *= base; b >>= 1; } return ans; } 大数取模 原理 $$ \left(a\times b\r

Burp Suite 安装教程

发布于|# 软件# BurpSuite

卸载所有 Java 软件,包括 JRE,JDK 等。 下载 OpenJDK 15 openjdk-15.0.2_windows-x64_bin.zip 解压到任意目录,添加环境变量。 项 值 JAVA_HOME 解压目录(如C:\15.0.2) CLASSPATH %Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar; Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 下载 Burp Suite 并安装。 官网地址 务必选择 Professional 版本! 打开安装目录,提取 burp.rar 内文件。 运行 burpsuite.bat 。正常情况下会提示输入密钥。 生成密钥 javaw -jar burp-loader-k

CTF 中 MD5 算法的识别

发布于|# CTF# Crypto

MD5(Message Digest Algorithm)消息摘要算法对输入的任意长度的消息进行运算,产生一个128位的消息摘要。 MD5的特征是会出现如下 A,B,C,D 这四个常量。 A=01234567h B=89abcdefh C=fedcba98h D=76543210h 而且,在内存中是以低字节在前的形式存储的,即如下格式,可以直接搜索。 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 这里用《加密与解密(第4版)》随书文件 MD5KeyGenMe.exe 来分析。 手动分析 在导入表中找到 GetDlgItemTextA 函数定位关键代码,两次 GetDlgItemTextA 函数读取的应该分别是 Name 和 Serial Number : sub_4012B0 函数我们点进去看看发现了MD5的几个特征常量: 还

Findcrypt 插件安装

发布于|# CTF# Crypto

这里以 IDA 7.5 绿色版为例。 进入 IDA\python38,打开命令提示符。 安装 yara-python ./python.exe -m pip install yara-python 进入 IDA\plugins,打开命令提示符。 克隆仓库 git clone https://github.com/polymorf/findcrypt-yara.git 重启 IDA ,Ctrl + Alt + F 即可调出插件。

在 WSL 中安装 LaTeX

发布于|# 软件# WSL

安装 TeX Live 进入华为云镜像,下载 install-tl-unx.tar.gz 。 解压 在线安装 ./install-tl -repository https://mirrors.huaweicloud.com/CTAN/systems/texlive/tlnet/ 添加到 Path cd /usr/local/texlive/2020/bin/x86_64-linux ./tlmgr path add 安装部分缺少的库 apt-get install build-essential 运行 latexindent,根据提示 cpan install 对应库。 更新包 tlmgr update --self --all 同步字体 安装 fontconfig apt install fontconfig 创建 /etc/fonts/lo

Android 11 在不解密 DATA 分区的情况下进行系统升级和安装面具

发布于|# Android# ROM

目前的 TWRP 尽管更新到了 3.5.0 ,但是还是没能够支持对 Android 11 的 DATA 分区进行解密。如果要升级系统和安装面具,按照往常办法,必须先解密/格式化 DATA 分区。但是格式化分区的影响过大,可以用 sideload 来刷写面具。 步骤 准备 ADB、TWRP、面具和待升级系统 OTA 完整包。 更新系统 MIUI 的 OTA 升级包如果直接 sideload 会导致报错,可以先推送至 /sideload 目录。 adb push update.zip /sideload 等待进度条走完,手动选择 Install ,选中 /sideload/update.zip 进行刷写。 刷入面具 **重启系统再关机。**更新系统会导致 Recovery 被覆盖。进入 Fastboot 刷写 TWRP 。重启进入 TWRP。进入 Advanced -> A

CTF 中常用的 PHP 技巧

发布于|# CTF# Tips

伪协议 协议 测试PHP版本 allow_url_open allow_url_include 用法 file:// >=5.2 / / ?file=file://D:/soft/phpStudy/WWW/phpcode.txt php://filter >=5.2 / / ?file=php://filter/read=convert.base64-encode/resource=./index.php php://input >=5.2 / on ?file=php://input [POST DATA] <?php phpinfo()?> zip:// >=5.2 / / ?file=zip://D:/soft/phpStudy/WWW/file. zip%23phpcode.txt compress.bzip2:

CTF 中常用的 Linux 技巧

发布于|# CTF# Tips

find 函数(寻找 flag 文件) find . {-atime/-ctime/-mtime/-amin/-cmin/-mmin} [-/+]num amin:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间; cmin:变更时间(change time),指的是**文件本身(权限、所属组、位置……)**最后被变更的时间,变更动作可以使chmod、chgrp、mv等等; mmin:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等; (time 后加天数,min 后加分钟数) ls 函数 ls -a 必须使用-a,否则会导致隐藏文件不显示。 cat 和 tac 等价 base64 -d 可以解码执行 find / -name `echo ZipsKmEqZ

三大主流 FPGA 编辑器测评

发布于|# FPGA# IDE

参与评测的对象 网上翻找了一下,有三款编辑器是目前主流。(Intel 的需要破解,最新版的破解暂时没有找到) Diamond 3.12 学生可以申请免费许可证。 Eclipse + Sigasi 4.10 学生可以申请免费许可证。 VSCode + Verilog 插件 免费。 对比 项目 Diamond Sigasi VSCode 自动补全 无 无 有 实时纠错 无 有,完整 有,有限 代码格式化 没找到 有,有限 有,稍完整 Diamond 优点主要在于集成化,除了编辑器,其它的功能都十分完备。内置两款编译器,一款是 Synplify Pro ,经常卡住;还有一款是自家的 LSE ,卡住情况基本没发生过。 Sigasi 纠错系统非常细致,但是格式化就很简陋,缩进不能缩进括号里的内容。 VSCode + verilog-format

WSL2 安装教程

发布于|# 软件# WSL

WSL 可以在 Windows 下运行 Linux ,而且性能高,启动速度快,基本可以满足日常需求。 安装 WSL 1 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 重启。 升级到 WSL 2 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 重启。 下载更新包 wsl_update_x64.msi 设置版本 wsl --set-default-version 2 在 Microsoft Store 安装 Linux 版本。 推荐 Ubuntu ,功能齐全。 初始化 在 Powershell 或 W