simple系列
simple4查壳,c++,拖入ida调试一下
shit 我不是很会c艹,怎么办捏
解决了
12345data=[0x43,0x72,0x61,0x63,0x6b,0x4d,0x65,0x4a,0x75,0x73,0x74,0x46,0x6f,0x72,0x46,0x75,0x6e]for i in range(17) : data[i]=chr(data[i])strdata = "".join(data)print(str(strdata))
CrackMeJustForFun
flag
simple系列
simple 3pyc文件,用在线转换或者uncompyle6转换成py文件
这里有个问题,如果这个加密是变形加密,就要用手脱了。找个时间学一下
12345678910111213141516171819import base64def encode(message): s = '' for i in message: x = ord(i) ^ 32 x = x + 16 s += chr(x) return base64.b64encode(s)correct = "XlNkVmtUI1MgXWBZXCFeKY+AaXNt"flag = ''print( "Input flag:")flag = input()if encode(flag) == correct: print ('correct')else: print ('wrong')
逻辑很简单
123456789import ...
simple系列
simple2查壳,elf,拖入ida64
查字符串,跳转关键代码,修改一下
把数据convert出来,写脚本
12345678910d1=[0x68, 0x61, 0x72, 0x61, 0x6D, 0x62, 0x65]d=[0x3A, 0x22, 0x41, 0x4C, 0x5F, 0x52, 0x54, 0x5E, 0x4C, 0x2A, 0x2E, 0x3F, 0x2B, 0x36, 0x2F, 0x34, 0x36]flag=''for i in range (17): d[i]=d1[i%7]^d[i]for j in range (17): flag+=chr(d[j])print(flag)
得到flag
RC3-2016-XORISGUD
周末过得比周一到周五累我是没想到的
作业和任务真多啊 🥲
simple系列
simple1
加点注释
输入储存之后,进行一个小的循环判断,i大于等于三就置零i,当i等于零的时候input和v6(16)亦或 16 32 48 这样的循环然后以hex形式存放input于buffer ,字符串形式存放buffer于buffer?
所以大概就是,input转换成hex形式再把hex数用string形式存储。那么答案很简单了,就是找出hex为5B 13 49 77 13 5E 7D 13的数据,每三位异或一次。但是13是不可见字符,所以有地方出错了
知道就开始写脚本捏
123456789101112a=''s=[0x5B,0x13,0x49,0x77,0x13,0x5E,0x7D,0x13]v=[0x10,0x20,0x30]j=0for i in range (7) : s[i]^=v[j] j += 1 if (j>=3): j=0 a+=chr(s[i])print(a)
结束
最近心脏不太行,休息了两天,去了趟医院,
最近不能再熬太猛了ww
hgame2022 easyyasm
easyyasm这题是一个没有壳的16位汇编逆向
直接用ida分析
123456789101112131415161718192021222324252627282930313233seg003:0000 public startseg003:0000 start proc nearseg003:0000 mov ax, seg dsegseg003:0003 mov ds, axseg003:0005 assume ds:dsegseg003:0005 mov ax, seg seg001 //seg001 move ax 这里的是比较数据seg003:0008 mov es, ax //ax move esseg003:000A assume es:seg001 // 伪指令seg003:000A ...
2022 hgame creakme
creakme进来看到function里面有start函数
直接一个箭步点进来
仔细看,这个题目又是一个tea算法,标志性的位移和大数
检查一下逻辑
先把对比数据convert出来
[0x48D93488, 0x030C144C, 0x52EB78C2, 0xED9CE5ED,0xAE1FEDE6, 0xBA5A126D, 0xCF9284AA, 0x65E0F2E3,]
有一个小坑,也就是说先读取的是0x48D93488和0x030C144C(加密用的是2个32位无符号)
小修一下
不难看出v10 就是key
而key又是4个无符号32位 那么key就是 ABCD EFGH IJKL MNOP
把这些转化成unsigned hex
因为反编译中是 3210的顺序,所以实际的十六进制码是
0x44434241,0x48474645,0x4C4B4A49,0x504F4E4D
写脚本ww
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <stdio. ...
have_a_tea
极客赛 have_a_tea先拖出来查壳,发现是elf文件,ida64打开,发现文件内容很少,应该是被加密了
用wsl2远程调试
被奇怪的反调试拦截
restart
查看函数结构,发现start函数有跳转
跟进jmp 跳转
继续跟进libc start函数
弹出处下断点
被fork子进程拦截?
直接C+n越过fork创建
找到关键代码
先来学习一下tea加密解密,我还不会这个方式
Google上出来的:加密使用的数据为2个32位无符号整数,密钥为4个32位无符号整数即密钥长度为128位。TEA、XTEA、XXTEA加密解密算法 - 简书 (jianshu.com) (4条消息) TEA系列加解密算法详解_Markus-CSDN博客_tea解密
简单来讲,就是对密钥和数据进行加法和位移多次循环把数据和密钥打散混乱。逆向的话只需要反着来就行了。这个算法的特点在于他会以32bit为运算单位
找到加密部分
出现了一些奇怪的问题,比如encrypt内的函数全部带上了(int_64) 的强制转换,emmm,没有截到图,有点难受。
关键加密部分
看一下代码逻辑
因为加密算法是以3 ...
blog test
re :Knight Bank Robbery这是一道简单的Java逆向
源码已经放出
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718 ...
怎么搞啊,开摆了
搭建博客妈耶
安装完git 和node
但是hexo 一直没有办法执行
奇怪了
明天再看看
妈耶
https://Reher0adchick.github.io
搞定了
但是没有模板
我麻了
我真的麻了
搞定了
首先是
对git的命令不熟悉,绕弯,其实总结出来就
1,安装git 和 node
2,在git里安装npm
3,在github里建立库
4,设置npm,将其部署到库内
5,装饰
装饰博客!一开始安装主题的时候出了点小问题
我用的是npm安装,网上的美化教程多是以git安装作为基础的
npm安装的主题存在了node_modules这个文件夹里面
在主题的文件夹里面找到_config.yml这个文件
拖拽到blog的根目录,改名成_config.butterfly.yml
ps:主题的config保留捏
然后看着教程弄就完事了