题目地址:http://www.shiyanbar.com/ctf/2020
拖到IDA里进行反汇编查看伪代码
循环结束后,建立了一个链表。一共十个元素。
qword_601080里的值是个地址,该地址指向链表第一个元素。
链表的每一个数据域的前一个双字里是序号(从0Ah一直到01h)后一个双字存放着数值(对应数值与序号的关系是数值=109+序号值)。
查看40074D函数
第一个for进来后5次循环
每次循环都将我们输入的password的对应字符与链表数据域中的数值进行比对,如果相等,就会把该数值对应的序号存放在v6数组中。
第二个for就是v6数组与v9数组进行比对。
v9数组 5 2 7 2 5 6
所以对应数值 114 111 116 111 114 115
即password:rotors