Polar D&N misc_无限解base64

本文介绍了在解决一个名为‘无限解base64’的CTF挑战时遇到的问题及解决方法。作者通过使用shell脚本进行while循环解码,最终通过grep和wc -l的正确使用找到了正确的flag。

目录

关键资料:

1、题目网址:

2、题目文件

3、解题思路

4、相关代码

5、结果


关键资料:

感谢大神的资料分享:

我在关键判断目标字符串是否存在的时候使把grep 的筛选结果传递给 wc -l 去统计是否存在目标字符串,理想状态是如果存在那么就是1行,如果不存在就是0行,结果频繁出错明显存在的时候还是显示0行。后来网上找到大神文章wc -l 统计的是newline的个数,而我的解码字符串均不包含newline所以无论如果统计,我的结果一直是0,导致代码出错,根据大神文中指导使用了

grep -c "" 来统计获得准确的行数。从而解决问题。再次感谢。

​​​​wc -l 统计的是行数?大错特错-优快云博客文章浏览阅读60次。POSIX 标准里面定义一行用的就是 一段文字以newline结尾,如果不按这个标准来就不认为这是一行文本。-l 的意思是统计 '\n'的数量,上面的例子file中没有换行符,自然统计出来的结果是0。wc可以Unix系的基础工具呀,这统计的行数不正确属于重大bug呀!会用Linux的人都知道用wc -l 可以统计文本文件的行数。在windows系统中newline 是'\r\n'那么大名鼎鼎的wc -l不能用了?事出反常必有妖,这个锅并不是wc的。那么,

脚本1: /* * dts file for Hisilicon tiangong0 Development Board * * Copyright (C) 2022-09-07, Hisilicon Ltd. * */ /dts-v1/; /plugin/; #include <dt-bindings/gpio/gpio.h> / { compatible = "hsan,tiangong0"; board_id = <0>; vendor_id = "hsan"; fragment@0 { target-path = "/"; __overlay__ { board_id = <0>; vendor_id = "hsan"; }; }; fragment@1 { target = <&pmupwm>; __overlay__ { pinctrl-0 = <&pmupwm_sig1_state>; }; }; fragment@2 { target = <&peri_gpio0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&gpio7_default_state>, <&gpio12_default_state>, <&gpio13_default_state>, <&gpio27_default_state>, <&gpio28_default_state>; }; }; fragment@3 { target = <&gemac3>; __overlay__ { phy-mode = "gmii"; sgmii; phy-handle = <&gephy3>; }; }; fragment@4 { target = <&gemac4>; __overlay__ { status = "disabled"; }; }; fragment@5 { target = <&gephy4>; __overlay__ { status = "disabled"; }; }; fragment@8 { target = <&usb3_xhci>; __overlay__ { status = "disabled"; }; }; fragment@9 { target = <&serdes0>; __overlay__ { status = "disabled"; }; }; fragment@10 { target = <&serdes1>; __overlay__ { status = "disabled"; }; }; fragment@11 { target = <&gephy3_2p5>; __overlay__ { status = "disabled"; }; }; fragment@12 { target = <&gephy3>; __overlay__ { status = "okay"; }; }; fragment@13 { target = <&i2c1>; __overlay__ { status = "disabled"; }; }; fragment@14 { target = <&spi0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&gpio34_default_state>; slicdev { compatible = "hsan,slic-spidev"; reg = <0>; spi-max-frequency = <4096000>; zsi; rst-gpios = <&portb 2 GPIO_ACTIVE_HIGH>; /* gpio34 */ gpio-delay = <50>; spi-cpha; spi-cpol; spi-cs-high; }; }; }; fragment@15 { target = <&hwdio>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&hw0_default_state>; interface-mode = <1>; /* 0:hw; 1:zsi; 2:isi */ clk-sel = <0>; /* 0:osc; 1:serdes0; 2:serdes1; 3:serdes2 */ clk-mode = <1>; /* 0:input clk; 1:output clk */ clk-rate = <0>; /* 0:8MHz; 1:4MHz; 2:1MHz; 4:512KHz */ rx-edge = <1>; /* 0:up edge; 1:down edge */ tx-edge = <0>; /* 0:up edge; 1:down edge */ rx-align = <0>; /* value[0,1023] */ tx-align = <0>; /* value[0,1023] */ fs-edge = <0>; /* 0:up edge; 1:down edge */ fs-level = <1>; /* 0:low level; 1:hight level */ fs-rate = <1>; /* sample rate 0:8KHz; 1:16KHz */ fs-mode = <1>; /* 0:normal mode; 1:8KHz mode */ pcm-wide = <1>; /* 0:8bit; 1:16bit */ }; }; fragment@16 { target = <&mii_misc_ge3_2p5>; __overlay__ { status = "disabled"; }; }; fragment@17 { target = <&pinctrl_peri>; __overlay__ { pinctrl-0 = <&peri_power_source0_3v3_state>, <&peri_power_source1_3v3_state>, <&peri_power_source2_3v3_state>; pinctrl-names = "default"; }; }; fragment@18 { target = <&gephy0>; __overlay__ { /* led-polar * 00:on-drive LED low, off-drive LED high * 01:on-drive LED high, off-drive LED low * 10:on-drive LED low, off-tristate LED high * 11:on-drive LED high, off-tristate LED high */ /* led-freq * eg:led-freq = <200>;Blink period is 200ms */ led-polar = <0x0>; led-mode = <0x1>; /* single_led 1, double_led 2 */ pinctrl-names = "default"; pinctrl-0 = <&gephy_led0_default_state>; }; }; fragment@19 { target = <&gephy1>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led1_default_state>; }; }; fragment@20 { target = <&gephy2>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led2_default_state>; }; }; fragment@21 { target = <&gephy3>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led3_default_state>; }; }; }; 脚本2: /* * dts file for Hisilicon tiangong0 Development Board * * Copyright (C) 2022-09-07, Hisilicon Ltd. * */ /dts-v1/; /plugin/; #include <dt-bindings/gpio/gpio.h> / { compatible = "hsan,tiangong0"; board_id = <0>; vendor_id = "vendor3"; fragment@0 { target-path = "/"; __overlay__ { board_id = <0>; vendor_id = "vendor3"; }; }; fragment@1 { target = <&upsphy0>; __overlay__ { status = "okay"; }; }; fragment@2 { target = <&usb3ctrl>; __overlay__ { phys = <&usb2phy0>, <&upsphy0>; phy-names = "usb2phy", "upsphy"; }; }; fragment@3 { target = <&usb3_xhci>; __overlay__ { status = "okay"; }; }; fragment@4 { target = <&peri_gpio0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&gpio1_default_state>, <&gpio27_default_state>, <&gpio28_default_state>, <&gpio29_default_state>, <&gpio38_default_state>, <&gpio39_default_state>, <&gpio40_default_state>, <&gpio41_default_state>; }; }; fragment@5 { target = <&i2c1>; __overlay__ { status = "disabled"; }; }; fragment@6 { target = <&pinctrl_peri>; __overlay__ { pinctrl-0 = <&peri_power_source0_3v3_state>, <&peri_power_source1_3v3_state>, <&peri_power_source2_3v3_state>; pinctrl-names = "default"; }; }; fragment@7 { target = <&pmupwm>; __overlay__ { pinctrl-0 = <&pmupwm_sig1_state>; }; }; fragment@8 { target = <&spi0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&gpio34_default_state>; slicdev { compatible = "hsan,slic-spidev"; reg = <0>; spi-max-frequency = <4096000>; zsi; rst-gpios = <&portb 2 GPIO_ACTIVE_HIGH>; /* gpio34 */ gpio-delay = <50>; spi-cpha; spi-cpol; spi-cs-high; }; }; }; fragment@9 { target = <&hwdio>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&hw0_default_state>; interface-mode = <1>; /* 0:hw; 1:zsi; 2:isi */ clk-sel = <0>; /* 0:osc; 1:serdes0; 2:serdes1; 3:serdes2 */ clk-mode = <1>; /* 0:input clk; 1:output clk */ clk-rate = <0>; /* 0:8MHz; 1:4MHz; 2:1MHz; 4:512KHz */ rx-edge = <1>; /* 0:up edge; 1:down edge */ tx-edge = <0>; /* 0:up edge; 1:down edge */ rx-align = <0>; /* value[0,1023] */ tx-align = <0>; /* value[0,1023] */ fs-edge = <0>; /* 0:up edge; 1:down edge */ fs-level = <1>; /* 0:low level; 1:hight level */ fs-rate = <1>; /* sample rate 0:8KHz; 1:16KHz */ fs-mode = <1>; /* 0:normal mode; 1:8KHz mode */ pcm-wide = <1>; /* 0:8bit; 1:16bit */ }; }; fragment@10 { target = <&gemac4>; __overlay__ { status = "disabled"; }; }; fragment@11 { target = <&gephy4>; __overlay__ { status = "disabled"; }; }; fragment@12 { target = <&gemac8>; __overlay__ { status = "disabled"; }; }; fragment@13 { target = <&gephy5>; __overlay__ { status = "disabled"; }; }; fragment@14 { target = <&gemac3>; __overlay__ { phy-mode = "gmii"; phy-handle = <&gephy3>; }; }; fragment@15 { target = <&gephy3_2p5>; __overlay__ { reg = <0x1>; status = "disabled"; reset-gpios = <&porta 29 1>; }; }; fragment@16 { target = <&mdio1>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&extphy1_default_state>; }; }; fragment@17 { target = <&gephy0>; __overlay__ { /* led-polar * 00:on-drive LED low, off-drive LED high * 01:on-drive LED high, off-drive LED low * 10:on-drive LED low, off-tristate LED high * 11:on-drive LED high, off-tristate LED high */ /* led-freq * eg:led-freq = <200>;Blink period is 200ms */ led-polar = <0x0>; led-mode = <0x1>; /* single_led 1, double_led 2 */ pinctrl-names = "default"; pinctrl-0 = <&gephy_led0_default_state>; }; }; fragment@18 { target = <&gephy1>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led1_default_state>; }; }; fragment@19 { target = <&gephy2>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led2_default_state>; }; }; fragment@20 { target = <&gephy3>; __overlay__ { led-mode = <1>; led-polar = <0>; pinctrl-names = "default"; pinctrl-0 = <&gephy_led3_default_state>; status = "okay"; }; }; fragment@21 { target = <&mii_misc_ge3_2p5>; __overlay__ { status = "disabled"; }; }; }; 这来脚本你的异同
09-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值