IDA的快捷键
shift+F12:自动分析出参考字符串
按N:弹出窗口,修改函数名和变量名
按H:转换16进制
F5:将一个函数逆向出来(生成c伪代码)
ALT+L:标记
U:取消识别
G:跳转到指定地址,快速传送
C:选中的内容解析成代码
P:重新识别成代码 创建函数
Shite+E:提取数据
Y:手动修复变量类型
ALT+T:搜索字符串(文本搜索)
R:将数字转换成字母
\:伪代码注释
:&; :是汇编里注释
EzSmc
本题主要是动态调试
将文件拖入exe分析64位,然后拖入ida64
进入之后按F5将一个函数逆向出来(生成c伪代码)进入,在进行逆向分析,继续跟进func函数进行动态调试,找到对应的版本Windows然后点击绿色标识的进行调试
之后进入按F5继续进行分析,继续跟进func
从func开始到主函数main之前结束将其进操作识别成代码
得到如下代码进行分析解密
memcmp函数:通过输入字节数n,比较前后两个数组从首地址开始的n个字节
将data与str的长度进行比较,data就是加密了的flag,跟进data
进入之后发现data是数据,这里确定一下data的长度为(前面循环是34次)35之后提取(shift+e)一下
最后根据得到的data和代码写出脚本
之后写出脚本以及结果如下
FTCF{Y0u-@re-v3ry-kNow-smc-x0r}
upx
本题主要考查脱壳
先将文件拖入exe,发现有壳,然后进行脱壳处理
如下图即表示脱壳成功接下来拖入ida进行分析解密
继续跟进merge函数
即可写出如下代码解出flag
FCTF{D0_Y0u_kN0w_Upx_hahaha}FCTF{D0_Y0u_kN0w_Upx_hahaha}
令人心动的key
先将文件拖入exe是64字节,F5生成伪代码后分析,
下图说明v4是加密后的flag, encode函数为加密的关键
跟进encode ,a2即为v4,a1为v5
根据逆向分析将上面encode函数将+=改-=,后写出代码得到flag
FCTF{Welc0me_t0_Rev3rse}
有趣的运算
先将文件拖入exe是64字节,F5生成伪代码如下,而后分析代码,框出的地方即为加密过程,解密过程是逆向操作所以应该把“+=”换成“-=”,从而写出脚本得出flag
FCTF{Rev3rse_1s_fun_hahaha}
我的flag怎么不对
先将文件拖入exe是64字节,F5生成伪代码如下,而后分析代码,进入replace函数
strcmp:用于比较两字符串常量或比较数组和字符串常量
进入replace函数之后,按R将数字转换成字母得到第二张图从而得到flag
FCTF{Th1s-1s-F@ke-Fl@g}