170707 逆向-南邮CTF逆向(WxyVM1)
来源:互联网 发布:c语言编程软件中文版 编辑:程序博客网 时间:2024/05/16 11:12
1625-5 王子昂 总结《2017年7月7日》 【连续第278天总结】
A. 南邮CTF逆向(4)
B. 4:
记事本打开发现文件头是ELF,拖入IDA进行反编译,发现只有几个函数
查看main函数,发现输入以后调用sub_4005B6()函数,然后判断长度是否为24和字符串0x601060比较
再进一步看4005B6,发现是按照0x6010C0的14997个字节来处理,每3个字节为一组,每组的第一个字节为处理方式,通过switch来判断,包括加减乘异或等;第二个字节指定处理第几个字节;第三个字节则为处理数
由于处理内容过于庞大,就想直接使用IDC脚本来逆处理目标字符串。加减乘异或的逆运算都很明显。
思路很清晰,然而在写脚本的时候出问题了:IDC脚本不接受数组和char类型的声明(或者是我不会(:з」∠))
无法新申请内存空间,就只好使用已有的内存空间了;然而*(0x601060)的使用方法也不承认,说好的IDC脚本和C++很像呢
想把这一段脚本Dump下来用py处理也是可以的,不过在找IDC的写入函数时找到了PatchByte(a,v)函数,可以将v写入a字节
那么直接对0x601060位置的24个字符串处理即可得到flag
IDC脚本如下:
auto i;for ( i = 14997; i >= 0; i = i - 3 ) { auto v0 = Byte(0x6010C0+i); auto v3 = Byte(0x6010C0+(i + 2)); auto result = v0; if(v0==1){ result =Byte(0x6010C0+i + 1); PatchByte(0x601060 + result*4,Byte(0x601060 + result*4)-v3); } if(v0==2){ result =Byte(0x6010C0+i + 1); PatchByte(0x601060 + result*4,Byte(0x601060 + result*4)+v3); } if(v0==3){ result =Byte(0x6010C0+i + 1); PatchByte(0x601060 + result*4,Byte(0x601060 + result*4)^v3); } if(v0==4){ result =Byte(0x6010C0+i + 1); PatchByte(0x601060 + result*4,Byte(0x601060 + result*4)/v3); } if(v0==5){ result =Byte(0x6010C0+i + 1); PatchByte(0x601060 + result*4,Byte(0x601060 + result*4)^Byte(0x601060+v3*4)); } else continue; }for(i=0;i<24;i++)Message("%c",Byte(0x601060+i*4))
注意单位为字节,因此直接对地址运算时需要x4
C. 明日计划
南邮CTF逆向5、6
阅读全文
0 0
- 170707 逆向-南邮CTF逆向(WxyVM1)
- 170708 逆向-南邮CTF逆向(maze)
- 170818 逆向-南邮CTF(WxyVM2)
- 170706 逆向-南邮CTF平台(1-3)
- 南邮ctf逆向最后一题
- 西普部分CTF题目(逆向)
- 171104 逆向-上海CTF(Re)
- 171105 逆向-上海CTF(cLemency)
- 记第一次成功的逆向(ctf)
- 逆向CTF (linux)
- CTF dotNet逆向分析
- CTF逆向工程入门_1
- CTF逆向工程入门_2
- 南邮ctf攻防平台RE第四题WxyVM1
- 南邮CTF逆向题第一道Hello,RE!解题思路
- 南邮CTF逆向题第二道ReadAsm2解题思路
- 南邮CTF逆向题第三道Py交易解题思路
- 南邮CTF逆向题第四道WxyVM解题思路
- funCode课程实训(C++ )
- 微信自定义分享在pc正常手机端不正常问题
- Yii2 Using pretty URLs (Yii2 中使用漂亮的urls) from ----- Yii2 By Example
- Python 主成分分析PCA
- acm56 java 阶乘因式分解
- 170707 逆向-南邮CTF逆向(WxyVM1)
- Excel列值(不限字符串数字)转换Vaules()拼凑表
- Spark基本术语
- Linux简介和系统安装-
- HTML学习笔记(Day2)
- OpenStack多节点安装(四):Compute
- [转]SAP无序列号与批次管理的库龄计算
- mybatis分页插件PageHelper的使用
- 开天辟地第一篇