基本汇编指令
mov A B **将B的值复制到A里面去**
push A **将A压栈**
pop A **将A从栈中弹出来**
call Funtion **跳转到某函数**
ret --> 相当于 pop ip **从栈中pop出一个值放到EIP里面**
je jz **如果ZF(0标志位)=1,就跳转,否则跳过这条语句,执行下面的语句。
ida。。
a2IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)_花熊的博客-CSDN博客
easyre
1.看到一个文件首先得知道它有没有壳,所谓加壳就是改变该程序的入口,使cs:ip指向另外一段代码,执行完额外的代码后再回到程序本来的入口,这样反编译软件就不能轻易进行反编译。因此我们用exeinfope来查看它是否有壳。
2.用64位ida打开,shift+F12查看关键字符串
reverse
1.ida打开
2.shift+f12
发现 this is the right flag!
3. 双击sub_1400..跟进
4.f5查看伪代码
对照ascii码,0对应48,o对应111.
就是把o都换成0了
flag为flag{hell0_w0rld}
reverse2
1.与上面一题一样,先f12+shift
看到this is the right flag!然后f5查看伪协议
if ( *(&flag + i) == 105 || *(&flag + i) == 114 )
*(&flag + i) = 49;
对照ASCII码,发现是把i和r替换为1
原先的flag应该是hacking_for_fun}
然后替换一下变成hack1ng_fo1_fun
内涵的软件
1.先运行了一下
2.查壳发现是32位
3.f12+shift
新年快乐
1. 查壳upx,32位
2.脱壳,使用upxshell
3.shift +f12
3.进this is true flag!
4.ctrl+x 定位查找
5.f5反编译
strcpy:把HappyNewYear!复制给str2,输入str1进行比较,相等即正确,即str1应该为HappyNewYear!---->flag{HappyNewYear!}