roger 发表于 2019-7-13 12:08:35

2019年7月第三周打卡_SimpleRev

1. 确定文件类型直接IDA或IDA64打开,利用IDA检查文件类型为:elf x86 64位1. 尝试运行出现“Segmentation”错误,一般来讲运行不起来要么就是出题不严谨没考虑库兼容问题,要么有坑。比如这题:1. patch使其正常运行使用IDA64打开,Crtl+e定位到EP,可看到不正确不平衡的堆栈初始化:IDA已经识别出“sp-analysis failed”,问题出在“sub rsp,0”根据底部的堆栈平衡代码可确定其本来应该是“sub rsp,8”。使用16进制编辑器直接修改机器码为“48 83 EC 08”或使用IDA patch插件修改汇编语句:再次运行尝试,OK
1. 定位关键函数算法IDA string窗口发现特殊的字串:可以很轻易的定位到关键算法函数:1. 动静态结合破解算法Gdb ./SimpleRev_m开启调试,因为其未删除程序符号可以直接“b main”下main断点,单步进入到Decry()函数后,使用“b *Decry-0x93a+0xbaa”直接下strcmp关键比较函数,c继续运行,输入“12345678”后验证其比较参数:继续输入“23456789”验证其第一个目标字串并未改变:Text字串固定为“killshadow”,str2的求取中,v3为字串指针,v2为flag输入,关键为key数组:下key的两个引用断点“b *Decry-0x93a+0xb22” “b *Decry-0x93a+0xab7”,可得到固定的key数组“adsfkndcls”:所以可以确定加密算法为:(X-0x27-key[‘adsfkndcls’])%26=str2[‘killshadow’]
1. 编写枚举脚本确定flag区间:一.‘A’~‘Z’二.0x00~0x26、0x7B~0x7FPython脚本运行得到flag为:“KLDQCUDFZO”


页: [1]
查看完整版本: 2019年7月第三周打卡_SimpleRev