摘要:首先补充: OEP脱壳方法: 阅读全文
posted @ 2017-08-06 11:56 S_s_s 阅读(95) 评论(0) 推荐(0) 编辑
摘要:补充: 对Python编程还是不太熟悉,因此借用了别人的脚本并做了分析 首先主函数代码: 题目中给了要求: 具体分析都写在了py脚本里了: 得到结果: 要学会自己用python写脚本。。。可就是迈不出第一步。 附:又找到一篇wp,可能这个看这更明白些: 阅读全文
posted @ 2017-08-06 10:27 S_s_s 阅读(177) 评论(0) 推荐(0) 编辑
摘要:之前学逆向感觉学得一踏糊涂,这阶段好多师傅带我,一定要好好学,重新开始,认真学习。 来看打开可执行文件: 用ollydbg载入,单步执行后停到了入口点: 分析入口点,并没有加壳,于是F9执行程序,跳出了程序执行框,随便输入些字符,出现了错误框的提示: F12暂停程序后Alt+k查看调用栈: 补充: 阅读全文
posted @ 2017-08-04 10:36 S_s_s 阅读(253) 评论(0) 推荐(0) 编辑
摘要:看代码: 1 #include <stdio.h> 2 #include <fcntl.h> 3 int key1(){ 4 asm("mov r3, pc\n"); 5 } 6 int key2(){ 7 asm( 8 "push {r6}\n" 9 "add r6, pc, $1\n" 10 " 阅读全文
posted @ 2017-08-03 11:34 S_s_s 阅读(635) 评论(0) 推荐(0) 编辑
摘要:首先看源代码: 1 argv['A'] = "\x00"; argv['B'] = "\x20\x0a\x0d"; argv['C'] ="55555"; 这里可以用’A’作为参数的索引,这是原来没有见过的,默认把字符转换成ASCII码了。 2 execve函数 execve(执行文件)在父进程中f 阅读全文
posted @ 2017-08-03 10:41 S_s_s 阅读(766) 评论(0) 推荐(0) 编辑
摘要:恢复内容开始 首先看源代码: 这题就很简单啦,只要输入的key与random异或为0xdeadbeef便得到flag 首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。 rand(产生随机数) 表头文件: #include 定义函数 :in 阅读全文
posted @ 2017-08-02 18:35 S_s_s 阅读(92) 评论(0) 推荐(0) 编辑
摘要:先看源码: 得出如果password1和password2与条件稳合便得出结论,但是scanf没有取地址符 思路是got覆写技术: 先看got信息: 得到fflush@GLIBC_2.0地址为0x0804a004, 再看一下程序汇编 得到name_addr=ebp-0x70 password1_ad 阅读全文
posted @ 2017-08-02 17:24 S_s_s 阅读(420) 评论(0) 推荐(0) 编辑
摘要:-a --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. -h --file-header 显示elf文件开始的文件头信息. -l --program-headers --segments 显示程序头(段头)信息(如果有的话)。 -S --section-hea 阅读全文
posted @ 2017-08-02 16:03 S_s_s 阅读(315) 评论(0) 推荐(0) 编辑
摘要:可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示: x/<n/f/u> <addr> n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,参见下面 阅读全文
posted @ 2017-08-02 15:35 S_s_s 阅读(4120) 评论(0) 推荐(0) 编辑
摘要:丢进winhex里分析 是elf文件,那么分析一下elf文件: 可猜到可能是upx加壳:用strings flag得到: 可知是加壳 或者: 可确定是upx加壳,于是脱壳后放入ida用Shift+F12便可获取flag 此处有多种方法,也可放进winhex里得到,或通过gdb查找地址得到。 阅读全文
posted @ 2017-08-02 10:45 S_s_s 阅读(88) 评论(0) 推荐(0) 编辑