1.拿到文件,发现是Rust逆向,特点是主函数无法进行反编译,只能通过汇编语言逆向求解,通过搜索字符串,找到关键函数:
2.理清逻辑关系,找到关键判断:
其中的cmp判断输入的长度是否为20h,也就是32位,也就是说,需要我们输入的字符为32位。
3.动态调试:
我们输入abcdefghijklmnopqrstuvwxyzABCDEF,F8单步运行,中间的函数和过程不用看,一直动调看输入的字符串怎么变化的。
第一次变化:
四个一组,位置发生了变化。
第二次变化:
1.拿到文件,发现是Rust逆向,特点是主函数无法进行反编译,只能通过汇编语言逆向求解,通过搜索字符串,找到关键函数:
2.理清逻辑关系,找到关键判断:
其中的cmp判断输入的长度是否为20h,也就是32位,也就是说,需要我们输入的字符为32位。
3.动态调试:
我们输入abcdefghijklmnopqrstuvwxyzABCDEF,F8单步运行,中间的函数和过程不用看,一直动调看输入的字符串怎么变化的。
第一次变化:
四个一组,位置发生了变化。
第二次变化: