- 博客(20)
- 收藏
- 关注
原创 reverse学习
如果两个字节相加的结果超过了255,就需要将超出的部分进位到下一个更高的字节。在不同的语境中,其具体含义可能有所不同,但总体上是指对信息、媒体或通信等进行限制或控制,以隐藏某些被认为不合适、敏感或违反规定的内容。例如,如果你有两个64位的数A和B,它们的和S=A+B如果超过了264−1(64位能表示的最大值),则结果S会回绕到Smod264。例如,考虑两个字节a和b,它们的和s=a+b。但是我这个sha-1的哈希值也用md5的解密出来了,挺巧的,不管了,我们再得到Md5哈希值。
2025-01-19 21:55:56
1007
原创 reverse学习总结-查表代换
例如,如果原始数据是`0x01,0x02,0x03,0x04`,那么加密后的数据将是`table[0x01],table[0x02],table[0x03],table[0x04]`。总结来说,查表代换的原理是通过一个预定义的映射表来替换数据中的每个元素,而逆向查找表则提供了从加密数据回到原始数据的能力。一个简单的查找表很容易被破解,因为它只提供了有限的映射。在这个表中,输入字节(例如,0x00)被映射到表中的第1个元素(0x13),输入字节0x01被映射到第2个元素(0x45),依此类推。
2025-01-19 21:55:09
635
原创 汇编学习笔记(自用)
四个通用寄存器可以高版本兼容低版本h结尾表示16进制,不区分大小写;b结尾表示2进制,不区分大小写;没有字母表示10进制伪指令db-->definebyte定义字节dw-->defineword定义字=2字节示例,好像单引号或是双引号都可以db'hello'dw'hello'dw定义应该是偶数字符,否则会对应添加.在末尾。
2025-01-19 21:52:27
1225
原创 reverse学习总结-ollvm
找到了tea系列的加密,没有魔改,我们知道三段数据,再根据tea的加密逻辑分出密文和密钥写解密脚本尝试,我也分析不出来谁是密文谁是密钥,只能一个一个尝试了。其中的一个就是32个数字即16个字符是128位,所以有一个是密钥,剩下的两个是密文是64位的一组的4组.一眼顶针,我们用下面的数写代码,因为也不知道是先异或还是先做减法,没分析彻底,所以还是一个一个尝试。这通常用于信号处理函数,因为它们不应该返回到被中断的代码。猜测是输入的flag异或各自的下标,当输入了23个时,进入sub_12E9函数和密文比较,
2024-12-24 18:41:13
934
原创 reverse学习总结(14)-.pdb-ptrace-SMC
ptrace`是一个在类Unix操作系统中用于进程间交互的系统调用,它允许一个进程(跟踪者)控制另一个进程(被跟踪者)的执行。所以我们运行得到密文,让后我们写解密脚本即可,但是因为这道题目是ELF文件,需要ida的linux虚拟机进行远程调试,我这里的虚拟机总是弄不好,所以先搁置一下吧.....(下面是idapython的脚本之后学习一下)5.**优化信息**:在代码优化过程中,原始代码可能会被修改,.pdb文件包含了优化前后的映射信息。
2024-12-22 14:08:52
139
原创 reverse学习总结(13)-apk
查壳之后进入主函数,猜测是把字符串unk_402008解密让后输出,验证一下1.这段代码并不是加密算法,而是一个解码函数,它看起来像是用于解码UTF-8编码的字符。UTF-8是一种变长字符编码,用于编码Unicode字符,它可以使用1到4个字节来表示一个字符。这个函数根据UTF-8编码的字节序来确定字符的编码长度,并提取相应的字符。这段代码并不是加密算法,而是一个解码函数,它看起来像是用于解码UTF-8编码的字符。
2024-12-10 19:33:03
1492
原创 HECTF.wp
进去看是c++代码,不太清楚,所以我直接找关键处,顺便学了几下从下面找的密文提取,shift+e这是异或运算,之后结果是猜测有base加密找到了,而且是变表加密提取数据在线网站解决。
2024-12-08 10:30:08
581
原创 reverse学习总结(12)
在jadx中,"native"关键字用于声明Java代码中的本地方法,这些方法在Java层声明,但其实现位于C或C++编写的本地库中,通常编译为.so文件。当jadx反编译包含native方法的Android应用时,它会识别出这些方法,但无法提供其在.so文件中的具体实现细节,因为实现代码位于本地库中,不在Java代码中。在jadx中,"native"指的是原生方法,这些方法在Java代码中声明,但它们的实现位于C或C++编写的本地库中。`的声明,这表明该方法是一个原生方法,其实现需要在本地代码中找到。
2024-12-03 22:22:54
1325
原创 reverse学习总结(11)
查壳ida分析shitf+f12字符串查找进入主函数,输入v8进行sub_401080函数操作让后和byte_40E0E4相同ida中按"a"是生成字符串的快捷键,所以是字符串zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9查看sub_401080函数byte_40E0A0查看同样生成字符串可知是base64加密,找在线网站解密即可,但是结果是错误的,我们再仔细看看哪里出了问题,一般主函数分析的没有遗漏,我们看看base64这个函数有没有改动,
2024-11-30 23:48:50
899
原创 reverse学习总结(10)
看到有两个文件,猜测第二个是正确的输出结果,我们分析第一个文件没有关键的位置代码,直接分析加密代码for循环,( i = 1;i <= 19;++i )可知flag是19位,代码解决需要注意的是for从1到20开始,所以我们要自己定义一个a[0],来对其加密代码顺序。
2024-11-28 20:41:40
1192
原创 revere学习总结(9)-花指令
打开题目之后有这两个东西;和一般的re题目不太一样,是真的没有头绪,所以就去看题解了发现是rsa加密,所以就找公钥,看下面的文件像publickey,上面的像明文,所以就分析rsa加密用记事本模式打开pub.key知道是公钥,找到了N和e之后找q和p两个质数,因为网站只能处理十进制的数字,所以把N转成10进制数可知q=p=之后找python代码代数即可。
2024-11-26 20:26:46
1185
原创 reverse学习总结(7)-Nspack壳
标志寄存器包含了处理器的状态标志,例如零标志(ZF)、进位标志(CF)、溢出标志(OF)等。:这条指令用于将所有通用目的寄存器(即 EAX, EBX, ECX, EDX, ESI, EDI, EBP, 和 ESP)的值压入堆栈。标红了,点击call函数那一条,右键右侧ESP寄存器的值点击"在内存窗口中转到"(上面的那个)v5初始为零,每while次判断完之后必进行if判断,所以v5++,,并且在数组中做下标。到达了jmp指令,点击jmp指令,按f4运行到此处,所以合理推测v7是我们的flag,写代码实现。
2024-11-21 19:33:33
954
原创 reverse学习总结(6)
v6是s的长度,v4是dest数组的下标,把dest[v4++]做一遍v4才可以加一,可知是把s的所有值进行操作,让后分析for循环,i小于v7才进行循环,v7是a2的长度,如果大于v7,则退出循环,但是不退出while循环,所以i变成了0再次操作dest,可知是减去a2[i%v7].写代码实现。最上面是我加的注释,之后进入加密函数,而s和dword_8048A90是这样表示的。按shift+e提取。之后分析加密函数代码。
2024-11-20 16:42:41
432
原创 reverse学习总结(5)
先查壳之后脱壳,进入ida我们已经知道v4,所以分析v5是flag1.在分析代码的时候看清是函数()还是数组[]3.在查找字符串的时候要正确找到全部部分比如这里的字符串有四部分,分别是=<;27h&%$#!其中在写代码c语言的时候要在转义字符前面加上反斜杠strchrstrchr是C语言标准库中的一个函数,用于在字符串中查找第一次出现指定字符的位置。其原型为,其中s是要搜索的字符串,c是要查找的字符。如果找到字符c,则返回指向该字符的指针;如果未找到,则返回NULL。:这部分代码将。
2024-11-17 11:15:05
713
原创 reverse学习总结(4)
因为两次进入ppp函数的a2值是相反的,再通过ppp函数和xxtea可知,这是对数据进行加密和解密的正反操作,所以我们只需要数据进行一次解密就可以得到所需要的答案(我自己猜测叫加密还是解密都一样,因为是对称加密,密钥相同,但是因为是由看不懂的密文得到flag,所以就叫解密),所以我们在x64dbg中直接搜索字符串what happened,在对应的call 进行断点,之后就可以在寄存器窗口看到flag了。在reverse题目中有些代码分析过后可以通过动态调试来处理,在本次题目中,定义了一系列变量。
2024-11-14 21:54:06
509
原创 reverse学习总结(3)
先查壳,没有特殊情况,进入ida分析猜测是输入v4,让后对v4进行修改(查了一下单词,patch_me相当于加密等操作吧)我们跟进让后进入get_flag函数发现有一个生成随机数的函数,并且只有特定的数才可以得到flag,与标题:luck_guy相吻合,所以我们直接分析代码就可以,随机数啥的都不用管;可知当case1时输出正确的flag,其中,我们需要f1和f2;可知f1是GXY{do_not_可知我们要求的f2的运算,其中是16进制数字字符串"我们对其按"r"转换成字符串。
2024-11-12 18:03:20
1287
原创 reverse学习总结(2)
exeinfope查壳文件发现是apk文件,说明是android逆向,我选用的是apkIDE进行逆向操作,选中所需要分析的文件拖入,在文件中寻找main函数和flag等关键内容可知flag这道题目主要考查android的使用,具体的apkIDE我也没有仔细看过用法,所以就过了....
2024-11-09 22:23:54
895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人