2024强网杯青少年赛选拔赛Re-wp
原题提取码:95lk EnterGame一个chacha20加密,尝试用脚本解密不过好像不行,不知道是哪里的问题,可能是我密钥找错了。chacha20本质就是一个异或,我们可以把密文写入加密一次就可以得到原文。 下断点在加密入口处,提取密文注意点进去把密文全部提取,一共有48字节“5E 13 AA D3 87 75 2B 7A 1B 16 04 A3 49 7E 1D D26B 5D 58 40 5E 44 63 59 48 51 0D 54 5E 58 55 58 AD 82 AF DC E7 AB 58 5D CE C1 FD F7 FF 7F 00 00”。我们再次动调,输入48字节数据作为输入,然后再次在加密入口处断点,修改input的值。 用ida自带的chage byte就可以每十六字节进行修改。在比较的位置下一个断点继续运行查看s1的值就可以得到flag。 Flip_over看java层主逻辑在validateAndEncrypt()函数里,在so文件里找到这个函数,大概逻辑的是取flagflag这个字符串作为密钥把”a4c3f8927d9b8e6d6e4...
2024CtfNewStar Week4 Re-wp
MY_ARM用ida打开我们就可以发现输入,跟踪数据,就可以找到对比函数和加密函数,里面有密钥和密文。加密函数就是一个原生的tea加密,去解密,发现解密的是错误的,于是我们进行动调寻找,被修改的密文和密钥。用qume虚拟机运行程序 1qemu-arm -g 23946 文件 再次查看就可以找到被修改的密文和密钥,直接tea解密就行,值得注意的是在这个tea解密时,v1,v2的数据类型应该是int确保要有符号 12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <stdint.h>int decrypt(uint32_t* v, uint32_t* k) { int sum = 0x9E3779B9 * 32; int v0 = v[0], v1 = v[1], i; uint32_t delta = 0x9E3779B9; uint32_t k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; for ...
2024浙江省省赛 Re-wp+复现
(・∀・)つ原题(提取码: d9sa) 初赛ezre一个python字节码文件,可以用pycdas查看字节码。我们借此来分析一下python字节码文件的结构。 涉及到闭包函数的内容,总的来说闭包就是函数被定义在了函数里面。 闭包,看这一篇就够了——带你看透闭包的本质,百发百中-CSDN博客 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153...
frida初步学习
JavaScript API 手册 | Frida JavaScript-api 中文手册 frida_Android运行frida常用命令运行server1234adb push 名 /data/local/tmpadb rootadb shell chmod +x /data/local/tmp/fridaad64adb shell /data/local/tmp/frida-server spwan启动 1Frida -U -f 包名 -l hookbool.js -U 指定USB设备 -f 用app包名spwn方式启动 -P 指定APP的pid,先要自行启动 -pause 暂停 -l 加载hook脚本 一些frida方法的收集1send(); //发送信息到控制台. 对hook脚本的初步解析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757...
学习通粘贴的解决办法之一
有手就行 打开网页版学习通进入要解除限制的页面 按F12或者在浏览器右上角找到开发人员工具打开1,进到源代码页面,按CTRL+F,搜索”if (parseInt(allowPaste) == 1)”,然后点击左侧②处箭头所指的位置下一个断点。后面点击④处寻找下一处有”if (parseInt(allowPaste) == 1)”的地方,重复②④步骤直到把找到的全部位置打上断点。然后刷新网页⑤,然后去控制台输入“ allowPaste = “0”; ”,回车后若显示’0’,则成功,然后点击一次⑧运行。重复⑥⑦⑧步,直到页面正常显示就可以了。
2024CtfNewStar Week4 Re-wp
Reverse(・∀・)つ原题 MazE在main函数里找到加密逻辑,父子进程进行用v12和pipedes管道通信。根据分析依次找到函数getmap用于获取地图getbin获取二进制值到显示的3X3地图dec用于获取获取当前坐标的二进制值dec1从被压缩解密的迷宫地图中获取当前坐标对应的char字符后面的位移运算用于提取出当前位置的二进制值对地图进行解密,简单的异或,那么omap就是被压缩的地图最后进行MD5加密即可用脚本解密脚本如下 123456789101112131415161718192021222324252627282930#include <stdio.h>unsigned char omap[1226] = { ...};unsigned int map[99][99];unsigned char getmap(unsigned char* omap, int index) { unsigned char key[] = "tgrddf55"; return omap[index] ...
学生手册考试题库
1按Ctrl+F,或者在浏览器的右上角3个点中选择"在此页面上查找",然后输入关键词(推荐搜索选项)搜索就可以啦 (。・ω・。)ノ♡ 不知道哪里错了一题,结果可能会少3分 1.公寓文明和安全篇 1.(单选题, 1.0 分)如发现获奖寝室在参评当年有任何不符合获奖条件的或 有两次校检、院检不达标的,由学校收回荣誉并通报。A. 下一学期B. 下一学年C. 本学年D. 本学期正确答案: B 2.(单选题, 1.0 分)根据《学生手册》退还住宿费的标准应按照以下哪种方式计算?A. 每学年住宿费标准÷10 个月×(10-学生实际在校月数)B. 每学年住宿费标准÷12 个月×(12-学生实际在校月数)C. 每学年住宿费标准÷303天×(303-学生实际在校天数)D. 每学年住宿费标准÷365天×(365-学生实际在校天数)正确答案: A 3.(单选题, 1.0 分)寝室建设情况作为学生党员发展、转正、考核的重要依据。 学期内 次及以上被认定为周整改寝室的全体寝室成员,予以全校通报,并取消该寝室成员本学年的评奖、评优、评先及入党资格。A. 5B. 4C. 3D. 2正...
x86汇编语言初步学习
汇编指令编基础通用寄存器 EAX:(针对操作数和结果数据的)累加器(Accumulator) EBX:(DS段的数据指针)基址寄存器(Base Register) ECX:(字符串和循环操作的)计数器(Count Register) EDX:(I/O指针)数据寄存器(Data Register) 用作内存指针的特殊寄存器 ESI:(字符串操作源指针)源变址寄存器 EDI:(字符串操作目标指针)目的变址寄存器 EBP:(SS段中栈内数据指针)扩展基址指针寄存器,即栈底指针寄存器,与rbp相同 ESP:栈顶指针寄存器与rsp相同 段寄存器 CS:代码段寄存器(code s) SS:栈段寄存器(stack s) DS:数据段寄存器(data s) FS:数据段寄存器 ES:附加数据寄存器 GS:数据段寄存器 对段寄存器的理解 段寄存器就是存储一个代码段开头的一部分,可以理解为一个内存被分为了多个块,而段寄存器记录的就是一个段的开头。段寄存器一般与IP一起用,IP可以认为时一个偏移量,与段寄存器一起使用可以寻找段内的具体内存,例如ce = e8000,ip&...
2024CtfNewStar Week3 Re&Web-wp
Reverse(・∀・)つ原题 simpleAndroid打开后发现了一个checkActivity的文件里发现我们输入的字符串被传到了so文件里加密,于是解压出so文件丢入ida分析,找到了一个datacheck函数,一进去就发现了一个base64编码和编码密钥。加密代码看似很多其实总共就两次,一次是反转,还有一次是一个”|”和”&”运算,把反转后的字符串逐个进行运算,最后和密文进行比较。直接抄下来就行,解密脚本反一下就行,先运算后反转(脚本如下)最后用密钥在赛博厨师解base64编码就行。 123456789101112131415161718192021222324252627282930313233#include <stdio.h>#include <string.h>unsigned char data_1[32] = { 0xB2, 0x74, 0x45, 0x16, 0x47, 0x34, 0x95, 0x36, 0x17, 0xF4, 0x43, 0x95, 0x03, 0xD6, 0x33, 0x95, ...
2024CtfNewStar Week1 Re&Web-wp
reverse(・∀・)つ原题 base64Die 发现是 PE64,直接丢入 ide64,函数名混乱,直接 shift+f12,查找用”Enter the flag: “ 进入主函数,发现输入的值 str 为 26 位然后被 sub_7FF706EE14E0(Str, 26, Str1)加密输出为 str1,再与 g84Gg6m2ATtVeYqUZ9xRnaBpBvOVZYtj+Tc=比较相等即 str 是 flag 值.进入sub_7FF706EE14E0()函数,再由题目提示的 base64 丁帧为 base64 加密函数,并找到了一个字符串 WHydo3sThiS7ABLElO0k5trange+CZfVIGRvup81NKQbjmPzU4MDc9Y6q2XwFxJ/ ,一眼就是密钥 . 直接用密钥 base64 解密得 flag ezAndroidStudyapk 先安装看一看,全是提示就跟着提示来activity 有个 work.pangbai.ezandroidstudy.Homo 的页面,直接搜索进入拿下 flag 第一段 flag{Y0u...