🚲旧博客内容恢复

我是从20年开始写博客的,当时一直写的是生活类和一些菜鸟技术,零零散散也是记录了好多东西,放在电脑里真怕那天就删了。现在决定把我觉得能看的重新再放出来(不能看的主要是我之前写的很奇怪的文章)。 还记得第一次搭建博客是用免费的虚拟空间,到后来慢慢的使用了云服务器。在建站的过程中也是学到了不少的东西,结识了很多朋友,这也是一段很有意思的历程。但之前都是使用的动态博客,用过wordpress、typecho、halo… 中间也想过使用静态博客(hexo、hugo,但是觉得每次都得上传麻烦就放弃了。现在我重新启用了hugo(使用的时候发现了我电脑目录下还有好几个静态站点目录。。)为什么选择使用静态博客了呢。。是因为前段时间在写学习笔记,然后发现我的笔记给吞了,两个多小时写的内容都没了,破防了直接,于是我下定决心使用静态博客。 我的文笔一直不是很好,写文章经常毫无逻辑,关联词对不上,内容跳跃,在生活中我也是这样的一个人,希望慢慢改正吧。

May 12, 2024 · 1 min · Yalois

🍭CSS实现渐变字体

如封面所示-Yalois 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS渐变文本</title> <style> .BeautifulText{ /*通过将display属性设置为inline-block,DIV元素将根据其内部内容自动调整宽度,而不会占据整行。*/ display: inline-block; /*设置背景渐变色*/ background-image: linear-gradient(to right, grey, blue); /*设置字体大小*/ font-size: 50px; /* 关键代码 https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-clip 将文本的背景剪切为文本本身的形状, 并将文本颜色设置为透明。 这样做可以创建一种文本填充背景的效果, 使得背景图像或渐变能够显示在文本内部。 -webkit是提高兼容性 */ background-clip: text; -webkit-background-clip: text; color: transparent; } </style> </head> <body> <div class="BeautifulText"> <h1>Hello,CSS</h1> </div> </body> </html> display:inline-block; 为了使背景长度由文字大小决定,不然的话文字只占渐变背景的一部分。 可以代码一行一行打看效果。我觉得实现原理就是背景色覆盖在文字上,然后多余的部分消失。 看看过程,前三行css输入之后–> 后三行css输入后—>

May 4, 2024 · 1 min · Yalois

📱CTF安卓逆向中的so文件的动态调试调用

Mobile android逆向中so文件的动态调用 某个安卓题目,使用jadx反编译apk之后 发现有个native函数,调用了so库。 1.创建一个新的anroid项目,然后编辑项目中的grade文件,添加以下内容 不同的DSL要添加的代码不同 Groovy DSL(build.gradle) sourceSets { main { jniLibs.srcDirs = ['lib'] } } Kotlin DSL(build.gradle.kts) sourceSets.all { jniLibs.srcDirs("lib") } 然后把so文件放到项目目录的app目录下 然后新建一个Class,要求Class的包路径必须和jadx中Class的路径一致。 然后把jadx中的代码复制到这个class中 2.在主函数中调用

May 2, 2024 · 1 min · Yalois

✌️CTF-Misc-base64隐写

base64隐写 base64 Base64是一种二进制到文本的编码方式。 base64的每个字节用6位二进制数来表示,共64个编码字符,2^6=64。加上补位符号’=‘共65个字符。 A-Z a-z 0-9 + / = base64编码 编码主要流程: 将原始数据每三个字节分为一组(共24bit),然后每6bit转为一个码表字符(新的四个字节)。如果字节数不是三的倍数,补0使二进制位数是6的倍数来编码 如果最后多了一个字节(8bit,差16bit),补上4个0(12bit—2*6,差12bit),编码成2个base64字符。最后补两个’=’(6*2bit)。 如果最后多了两个字节(16bit,差8bit),补上2个0(18bit—3*6,差6bit),编码成3个base64字符。最后补上一个’=’(6bit)。 Base64是把3个字节变为4个字节,所以,Base64编码的长度永远是4的倍数 base64解码 如果最后补了两个’=’,在解码时,忽略’=’,四个base64字符为一组,最后一组将2个base64字符转为12bit,取8bit为新字节,丢弃掉最后4bit。 如果最后补了一个’=’,在解码时,忽略’=’,四个base64字符为一组,最后一组将3个base64字符转为18bit,取16bit为两个新字节,丢弃掉最后2bit。 如果最后没有补位,在解码时,将每个base64字符转换为对应的6位二进制数(共24位)。然后将这24位二进制数按照每8位分割为一组,得到三个字节的原始数据。 实际上算法的实现是更加复杂的,需要涉及到二进制位操作。 base64隐写 因为在base64解码的时候会丢弃2bit或者4bit,所以在这些地方插入二进制数据不会影响解码的结果,但是会影响编码后base64的结果。所以就可以在这部分进行隐写。 自己写的提取base64可隐写的部分的所有二进制的值合并字符串。 #文本读取内容实现 base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' with open("./f380d850e6ebdb19b7d0743.txt","r") as f: for i in f.readlines(): #最后一个是换行符,去掉 base64len=(len(i)-1) text=i[0:-1] if base64len%4==0: pass elif base64len%4==3: #能藏2bit t=base64chars.index(text[-1]) t=(str(bin(t))[2:].zfill(6)) #去掉0b开头然后在前边补0直到补齐6位 print(t[-2:],end='') elif base64len%4==2: ##能藏4bit t=base64chars.index(text[-1]) t=(str(bin(t))[2:].zfill(6)) #去掉0b开头然后在前边补0直到补齐6位 print(t[-4:],end='') else: print("好像有些错误") #补全完毕 参考url 一份简明的 Base64 原理解析 - 知乎 (zhihu.com) 神奇的 Base64 隐写 - Tr0y’s Blog

May 1, 2024 · 1 min · Yalois

📱手机上的花哨字母生成器

刷视频的时候经常会看到这样的标题。 于是我查了一些出来 这是生成网站 https://igfonts.io/ 我做了一份apk出来 https://wwb.lanzouw.com/imtgh0e1p38h 密码:b3fp 部分手机不支持这些字符

October 18, 2022 · 1 min · Yalois