type
status
date
slug
summary
tags
category
icon
password

WKCTF:

1、so_easy:

一道安卓逆向题目,但是和安卓的关系不大,如果使用动态调试的方式那么可能会用到此方面的,此方法只用于静态分析
观察代码可知其关键逻辑再so文件里面,所以直接ida分析so文件

ida启动:

可以发现他的加密逻辑是比较简单的,而且后面的密文也给了,我们只需要还原出它的加密代码就可以啦
notion image
 
notion image

分析加密代码:

notion image
注意观察字节类型,Qword,所以直接进行8字节逆向
他的加密逻辑也是比较简单的,对于四个密文数进行一个255次的移位和加密运算,也就是左移一位(相当于乘以2)
所以我们可以给出伪代码:
加密代码:
这个也就是加密的伪代码,我们解密也是简单的,反操作,
左移对应右移,异或对应异或
只是这里的判断我们是不好进行的,此时转换自己的想法,是否if语句有别的表示方法,比如奇偶判断
我们可以发现
对于正数,他的操作是乘以2,那么他的值必定是一个偶数
对于负数,可以发现他的首位与末位都是奇数,那肯定异或完还是奇数
所以既然正负不好判断,那就去判断最后一位的奇偶
对于一个奇数,进行异或
对于一个偶数,进行右移一位

编写解密代码:

总结:

以后对于这些判断正负的题目,我们都可以转换一下思想,去思考正负能不能行,能不能简化解密
notion image
SICTF—re硬编码学习
Loading...