170615 逆向-10000000
来源:互联网 发布:程序员教程第四版pdf 编辑:程序博客网 时间:2024/06/03 20:13
1625-5 王子昂 总结《2017年6月15日》 【连续第256天总结】
A.实验吧题目-10000000
B.先拖入PEiD,显示Unknown和yoda's Protector v1.02
查了一下,似乎是PEiD的数据错误导致无壳或是无法识别的壳都显示为这个
不管了,先放入OD里运行试试吧
成功加载,DOS窗口显示“喵?”
嗯……大概是让输入的意思吧?随便输入了123进去,显示wrong
命令行的程序没有调用WIN32的API,反而不太好下断,只能查找参考字符串了……
只不过最早只会查找字符串的时候经常遇到查找不到有用的字符串,所以不敢太依赖这个方法
还好这次查找到了三个字符串:喵?、good、和wrong
那么很明显,“喵?”就是输入提示,后面两个分别是正确和错误提示了
双击good,把该地址前的jnz给NOP掉,再运行,爆破成功
这种没有Name输入的纯注册机是最简单的了,因为Serial不会变化
在jnz前面有一个strcmp和test eax,eax的命令,那么很明显就是利用strcmp进行字符串比对了
在这个API处下断,再运行以后看栈堆里的参数却是两个乱码字符串,看来进行处理了,那没办法,只能乖乖看了
从输入的地方往下跟,发现它的处理流程很简单:取一个字节,与-0x80进行按位异或运算,结果覆盖原内存,然后循环,直到取出的字节ASCII为0结束
strcmp的一个参数是处理过后的输入的内容,另一个参数是固定的值:
0029FEE4 E6 EC E1 E7 BA F4 E5 F3 F4 F4 E5 F3 F4 骒徵呼弩趑弩?..
那么只要对其做-0x80异或的逆运算就可以找到正确明码了
查询得知异或的逆运算就是再异或,用py写一个即可:
a=[0xE6,0xEC,0xE1,0xE7,0xBA,0xF4,0xE5,0xF3,0xF4,0xF4,0xE5,0xF3,0xF4]s=""for i in a: s=s+chr(i^0x80)print(s)输出得到:flag:testtest
验证输入,good√
C.明日计划
CrackMe(24)
- 170615 逆向-10000000
- 逆向
- 逆向
- 逆向
- 逆向-360逆向writeup
- 逆向工程
- 逆向思考
- 逆向ring0msg
- 逆向思维
- 逆向工程
- 逆向COM
- 逆向思维
- 逆向分词
- 逆向IopAttachDeviceToDeviceStackSafe
- 逆向学习
- 逆向工程
- 逆向法则
- 逆向学习
- 第1课、创建最简窗口程序
- 每天学一点Swift----泛型(二)
- C++ STL--map容器
- android 右边滑动字母索引使用
- 前台js获取到后台json数据,eval解析json后,日期(object)对象转换为date日期格式显示
- 170615 逆向-10000000
- 高级软件工程考察报告
- ListView控件的使用
- webview收不到服务端的cookie
- 自然归并排序和单链表实现的归并排序
- Activity的生命周期
- hdu 1181
- python第一个游戏
- spring框架学习(四)自动装配