pwnable.kr第四题:passcode

0x000 打开环境

下载文件到本地,查看文件格式为64位的ELF,xxd命令是将文件转化为16进制的格式查看,发现文件内容有个明显的upx,upx是一种加壳压缩的程序,所以先把该文件脱壳,使用upx -d命令脱壳至flag_upx。

0x001 源码分析

细心一点就会发现,有一个注释“#0x6c2070 <flag>",然后你懂的:(“x/s",查看地址内容,s可省略,代表字符串)

这就是flag了!

 

原文地址:https://www.cnblogs.com/DennyT/p/11619891.html

时间: 2024-08-30 17:55:17

pwnable.kr第四题:passcode的相关文章

pwnable.kr第五题:passcode

0x000打开环境 ①查看源码: 1 #include 2 #include 3 4 void login(){ 5 int passcode1; 6 int passcode2; 7 8 printf("enter passcode1 : "); 9 scanf("%d", passcode1); 10 fflush(stdin); 11 12 // ha! mommy told me that 32bit is vulnerable to bruteforcin

pwnable.kr第三题:bof

0x000查看源码 打开bof.c文件 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 void func(int key){ 5 char overflowme[32]; 6 printf("overflow me : "); 7 gets(overflowme); // smash me! 8 if(key == 0xcafebabe){ 9 system(&q

pwnable.kr第六题:random

0x000打开环境查看源码 #include int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == 0xdeadbeef ){ printf("Good!\n"); system("/bin/cat flag"); return 0; }

【pwnable.kr】blackjack

又一道pwnable nc pwnable.kr 9009 读题找到源代码在:http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html 第一反应是源代码这么长,还不如先玩玩看. 首先,看一下游戏规则发现和21点游戏是一样的,可能国外就叫blackjack吧. 每次,让游戏中下注,然后和电脑比赛,下注的金额不能超过所持有的金额. 这尼玛发牌函数也是随机的,就算你运气再好,算法再牛,想挣100w

pwnable.kr的passcode

前段时间找到一个练习pwn的网站,pwnable.kr 这里记录其中的passcode的做题过程,给自己加深印象. 废话不多说了,看一下题目, 看到题目,就ssh连接进去,就看到三个文件如下 看了一下我们的用户名,并不能直接查看flag这个文件.查看passcode.c的源码看一下 #include <stdio.h> #include <stdlib.h> void login(){ int passcode1; int passcode2; printf("enter

pwnable.kr之passcode

passcode 下载下来的源代码 从源代码分析看出来,在scanf的时候passcode1和passcode2没有加地址符号,因此会存在题目中所说的警告. 这道题木一共两个函数,welcome和Login,在welcome中输入了name字符串,然后在Login中输入了passcode1和passcode2,在passcode1=338150(0x528E6)并且passcode2=13371337(0xCC07C9)的时候返回shell,得到flag. 想当然地: 竟然发现段错误.什么鬼.于

pwnable.kr 第二题 collision

题目地址 http://pwnable.kr/play.php 首先登录查看文件 分析代码,目的输出flag 显而易见,要让flag输出 就得让check_password这个函数返回一个0x21DD09EC 看提示可以得出要输一个20字节的字符 int占四个字节 char占一个字节 check_password 转换时候将20个char 四个一组转为int并相加 用python自带的计算机简单算一下 我们需要输入四个0x6c5cec8和一个0x6c5cecc 使用万能的python,尝试了多次

pwnable.kr 第一题 FD

题目地址http://pwnable.kr/play.php 第一题 FD 环境是kali系统 首先打开题目 按提示连接ssh 密码为guest 查看文件内容发现存在flag文件,但是没有读权限 查看fd.c代码文件 复习出现的函数 int argc 要输入的参数 char* argv[]表示的是包括文件名在内的参数,文件名是argv[0] char* envp[]是环境变量,比如path=c:\windows之类的东西.它没有一个整数来为它记数是通过最后一个evnp[i]==NULL来表示结尾

【pwnable.kr】 flag

pwnable从入门到放弃 第四题 Download : http://pwnable.kr/bin/flag 下载下来的二进制文件,对着它一脸懵逼,题目中说是逆向题,这我哪会啊... 用ida打开看一下源代码,居然没有main函数. 继续懵逼. 对, 又一次看了别人的题解,居然是加壳的,怪不得图片就是个壳,我哪会砸壳啊??? 还好有工具,轮子大法好,用strings命令发现程序有许多"UPX"字符串,是UPX壳. 在GitHub上找了一个UPX壳砸壳自动化工具: https://gi