加密算法
文章平均质量分 52
加密
su1ka111
vivo50,想吃疯狂星期四
展开
-
re题(39)BUUCTF-[FlareOn3]Challenge1
查壳是32位,ida打开,进入main函数,进入sub_401260看看。本题是一个简单base64变表加密,脚本解密即可。查看byte_413000存的字符串。直接shift+F12也可以看到。明显是base64的变表。原创 2024-09-22 22:26:21 · 297 阅读 · 0 评论 -
re题(35)BUUCTF-[FlareOn4]IgniteMe
找到主函数,逻辑是v4是函数反回的一个固定数,但是还不知道,让v4先和flag最后一位异或,然后flag倒着进行flag[i-1]=flag[i-1]^flag[i],现在找一下进行对比的字符串和v4。v4不能直接看,它存在栈里面,需要动态调试,我们在v4后面下个断点,进行本地调试(window系统)F5反汇编,前面是提取.txt文件数据,进入if条件里的函数sub_401050()本题考查了动态调试找到函数返回的固定值,还有一个简单的异或加密。把.exe文件查一下壳,无壳32位。随便输入字符串再回车。原创 2024-09-19 23:15:45 · 283 阅读 · 0 评论 -
re题(33)BUUCTF-re
x查看交叉引用,有个lookatyou函数,这个函数是在init里的,init在main函数之前运行。用这个密码表解密是乱码,应该是一个变表,这里有两种方法。第一种,远程调试这个程序,随便下个断点,运行。第二种,进入lookatyou函数。再查看base64密码表已经改变。写个脚本算出变表后的密码表。查壳无壳,放到ida。有个base64加密。原创 2024-08-13 17:23:36 · 174 阅读 · 0 评论 -
re题(29)BUUCTF-re[ACTF新生赛2020]usualCrypt
(注:nop40102E是不要全部nop,防止关键信息也被nop掉,先用d键转化为字节数据,在一个一个试,先nop第一个,在nop前两个。这个call指令,不能全部nop,因为后面那个东西可能是有效代码(我先全部nop掉了没法f5)。中,那篇博主总结了花指令的常见情况,知道了db 0E8h是添加花指令,继续nop掉。此时数据地址是红色的,仍然没法f5反汇编,将关键代码全部选中,按p键将其声明为函数。脱完壳放到ida,shift+F12看一下字符串,是个迷宫,maze(迷宫)按d将其先转换为字节数据。原创 2024-08-08 17:42:48 · 824 阅读 · 0 评论 -
re题(28)BUUCTF-[SUCTF2019]SignIn
这个函数和__gmpz_cmp(比较), __gmpz_init_set_str都属于GNU 高精度算法库。看到0123456789abcdef可能是个加密。关键是_gmpz_powm这个函数。发现powm函数和rsa加密一样。最后是比较v6和v7。原创 2024-07-16 18:30:37 · 265 阅读 · 0 评论 -
re题(27)BUUFCTF-[MRCTF2020]Transform
这里8dup(0)是存8个0。先到ida,先看一下字符串。原创 2024-09-17 01:49:24 · 528 阅读 · 0 评论 -
re题(25)BUUFCTF-[GUET-CTF2019]re
a1[6]作者忘加了,自己把26个字母和数字依次代到a1[6]里尝试提交,试完a1[6]在第二个位置。查看字符串,定位到主函数,也可以用ctrl+E的方式找到主函数。看到这儿有一堆大数和方程,我们知道要用z3模块求解了。明显,sub_4009AE是对flag加密的关键函数。得到解,我们还需要写个脚本把他们变成字符串形式。进入sub_4009AE看一下。本题考察了z3模块的使用。原创 2024-09-17 01:40:29 · 309 阅读 · 0 评论 -
re题(24)BUUFCTF-[WUSTCTF2020]level1
本题用到了‘&’与运算符和‘>>’右移运算符,(i&1)!=0 就是奇数成立,偶数不成立,剩下的就是简单运算,注意源代码是int型,用python写脚本时要变成int型。逻辑比较简单,写个脚本。原创 2024-09-17 00:36:47 · 384 阅读 · 0 评论 -
re题(23)BUUFCTF-[FlareOn4]login
找到程序,变灰的部分是关键,是指如果是前13个字母就加13,如果是后13个字母就减13 ,搜了一下rotFlag,应该是rot13加密,这种加密应该是属于弱加密吧,就是对原有的ascll值+13或者-13,原理还是很简单。本题是给了一个html文件,代码藏在网页源代码里,用到了rot13加密,是一个弱加密算法,比较简单。分别打开看看,txt是提示,html应该就是要破解的网页。下载后打开看到是一个txt和一个html。即可得出flag,还有一种方法,写脚本。打开网页,查看源代码。原创 2024-09-17 00:24:26 · 297 阅读 · 0 评论 -
re题(22)BUUFCTF-[ACTF新生赛2020]rome
本题主要用到了爆破flag,遇到公式里有取余符号时,并且知道限定条件,就可以用爆破的方式,在限定条件里循环,如果成立就是flag。放到ida,进入func函数。清楚逻辑了,写个脚本。原创 2024-09-17 00:07:40 · 298 阅读 · 0 评论 -
re题(21)BUUCTF—findit
用APK-IDE打开,然后进入到smali -> com -> findit -> MainActivity.smali。仔细观察pvkq,发现f——>p移10位,l——>v移10位,a——>k移10位,g——>q移10位。其实直接用jadx打开能看到反汇编的代码,这里是一个移位的凯撒加密。本题是安卓逆向,用到了凯撒加密,靠猜简单一些,爆破保准一些。所以这我们还需要将得到的字符串进行一次凯撒加密。ok,也是得到类似flag的字符串。也可以看第二串字符,可以猜一下。把这两个字符串输出以下。原创 2024-09-16 20:10:29 · 413 阅读 · 0 评论 -
re题(14)babyre
可是我脱完壳之后用ida再打开还是没脱壳的样子,而再查壳是脱壳的状态,于是我拿着没脱壳的文件看了两天/(ㄒoㄒ)/~~,后来知道应该是我最开始用ida打开过了,不知道怎么回事只剩下一个ida打包的文件,把ida打包的文件脱壳之后再打开还是原来的样子,把文件删了再下载重新做就好了。part1-4是输入四个数并分别处理过了,然后v12也就是flag就是处理过的四个数,分析后边对v12的操作,发现对v12没有影响,所以直接算四个数就好了。爆破完,发现是v8出错了,下面是v8的爆破。四个数的处理就是四个算式。原创 2024-05-11 19:11:39 · 453 阅读 · 0 评论 -
re题(12)BUUCTF-re reverse3
发现是'ABCD......'一般出现这种都是base64加密。主要用到了aAbcdefghijklmn,点进去看一下。对main函数反汇编,分析一下代码。解压缩一下,里面有个.exe文件。进入sub_4110BE看一下。原创 2024-05-06 22:49:53 · 286 阅读 · 0 评论 -
re题(11)BUUCTF-re 刮开有奖
进入sub_4010F0函数,把sub_4010F0变成c语言运行一下,得到对v7处理后的字符串。发现没壳,拖到ida反编译,结果只有winmain函数,进入DialogFunc参数。对v4和v5base64解码,得到string第3、4、5、6、7、8个字符。分析一下if语句,得到string前两个字符。得到flag{UJWP1jMp}这是v7处理过后的字符串。原创 2024-05-06 11:14:13 · 298 阅读 · 0 评论 -
re题(7)BUUCTF-re SimpleRev
经分析,输入的v1必须是字母才能存进flag,所以遍历26个字母。进入join函数,找text字符串。原创 2024-04-28 16:20:56 · 312 阅读 · 0 评论 -
re题(6)BUUCTF-re 内涵的软件
F5反编译,看到v5有点像flag,还是16字节,难道是md5加密?原创 2024-04-27 22:49:00 · 225 阅读 · 1 评论 -
DES算法
先将32位数据分为8组4位的数据,将第一组的第四位加到第二组的第一位前面,将第二组的第一位加到第一组的第四位后面,然后依次扩增,最后一次扩增是将第八组的第四位加到第一组的第一位前面,将第一组的第一位加到第八组的第四位后面,按照如此方法将这8组数据都扩增两位就变成了48位数据。下图左半边为初始置换的表,右半边为逆置换的表,图片中的数字指排列顺序,将每个64位字节块中的数据按表格中的顺序进行重新排列,如初始置换表中的第一个数字58指将将数据的第58位放到第一个位置上。将48位数据分成8组每组6位的数据。原创 2024-04-21 20:37:10 · 844 阅读 · 1 评论 -
re题(3)[HDCTF 2023]easy_re--Base64.UPX壳.脱壳
将脱壳后的文件拖到ida,按F5可以看到伪代码,对伪代码进行分析,知道是base64加密。脱完壳再查一下,发现已经变成了,text文件,说明脱壳完成。最后用python的base64模块进行解密,得到flag。按shift+F12可以查看字符串,里面有要解密的字符串。首先将下载好的附件查一下壳,发现是upx壳。然后打开cmd,用命令对upx脱壳。原创 2024-04-26 09:16:46 · 244 阅读 · 2 评论 -
RC4算法
流密码是逐位进行加密,那密钥就很关键,RC4算法是一个密钥长度可变的加密算法,也就是可以给任意位数的密钥,那它是如何产生密钥流呢?它是以一个足够大的表S为基础,对表进行非线性变换,产生密钥流(非线性变换是对数据通过非线性的函数进行计算,非线性的函数是一些图形为曲线的函数,比图形为直线的函数更难找到规律)种子密钥是可变的,一般不会太长,用种子密钥填充K表,如果种子密钥长度刚好是256,刚刚好将它赋值给K表,若它小于256个字节,则循环赋值给K表,直到K表的所有元素被赋值。对K表进行345循环填充。原创 2024-04-19 23:23:50 · 225 阅读 · 0 评论 -
MD5算法
只需要在发送端计算一次MD5,再在接收端发送一次MD5,如果这两次结果一致,那文件一定是完整的,第三个场景就是数字签名,比如发布一个程序,为了防止程序被植入木马,可以在发布程序是同时发布其MD5,这样别人下载程序后只需自己计算一遍MD5是否与我发布的相同,就能知道程序有没有被篡改,第四个场景就是云盘秒传,当我们要上传一个很大文件时,可能是秒传,它并不是真的把文件上传了,它只需要计算一下文件的MD5,并在自己的数据库中搜索一下这个MD5是否存在,如果存在就不用上传了,只需要用已存在的文件就行。原创 2024-04-19 13:09:12 · 920 阅读 · 0 评论 -
RSA算法
补充:如果两个正整数e和 φ(n)互质,那么一定可以找到一个整数d,使得ed-1被 φ(n)整除,或者说ed除以 φ(n)所得余数为1。6、公钥,KU=(e,n),明文M ,密文C,加密 M^e mod n = C。5、计算出e对于 φ(n)的模反元素d,de mod φ(n)=1。3、计算n的欧拉函数,φ(n)=(p-1)*(q-1)4、选一个与 φ(n)互质的整数e,1<e< φ(n)补充:欧拉函数是小于n的正整数中与n互质的数的数目。2、计算p,q的乘积,并赋值给n,n=p*q。原创 2024-04-21 21:13:23 · 220 阅读 · 1 评论 -
re题(8)BUUCTF-re rsa
下载完成后可以放在一个磁盘的第一级目录中方便安装,我放在了F盘。根据自己pycharm用的解释器版本下载。我的是python是3.8的,就下载这个。我们需要用到两个模块rsa和gmpy2。打开新建文件夹里的pyvenv.cfg。箭头位置是新建文件夹的路径,点确定。接下来要用pycharm写脚本。用上面网址将公钥解析一下。用这个网址计算一下p和q。点箭头的位置,添加解释器。将false改为true。像下面这样就安装成功了。之后打开cmd,输入。原创 2024-05-02 11:26:53 · 104 阅读 · 1 评论 -
BUUCTF(34)特殊的 BASE64
这里用的c++的标准程序库中的string,头文件是#include如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了。使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z。一个base64的简单变表,但是是用string标准库函数写的。查看字符串,想到base64的变表。这是base64的加密函数。原创 2024-09-08 22:49:56 · 241 阅读 · 0 评论