
Bash로 해킹하며 생산성을 높이기 위한 함수 모음
bashacks는 프로그래머, 보안 분석가, 그리고 저수준 작업이 필요한 일반 사용자에게 유용할 수 있는 bash 함수 모음입니다.
사실 bashacks에는 정말 새로운 것은 없습니다. 모든 함수는 UNIX 계열 시스템의 기존 소프트웨어를 사용하여 작성되었습니다. 그러나 여러 명령이 필요한 작업을 더 짧은 명령으로 수행할 수 있게 해줍니다.
make 명령을 사용하여 모든 함수가 포함된 단일 파일을 생성한 다음 source 하세요:
make
source bashacks.sh
그게 전부입니다. 이제 새 터미널에서 bh_를 입력하고 Tab을 누르면 사용 가능한 함수를 확인할 수 있습니다.
영구적으로 적용하려면 ~/.bash_profile에 추가하세요:
echo "source $(pwd)/bashacks.sh" >> ~/.bash_profile
일부 문서가 있지만 오래되었습니다. PR은 언제나 환영합니다!
현재 시간을 Epoch로 나타내면?
$ bh_epoch
1522324129
알파벳 순서로 'f'에 4를 더하기
$ bh_charcalc f + 4
j
내 외부 IP 주소 확인
$ bh_myip
177.212.113.13
기본 C 프로그램 뼈대 생성
$ bh_skel_c > hello.c
$ cat hello.c
이 명령은 다음과 같이 출력합니다:
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
파일의 일반적인 체크섬 계산
$ bh_hashes /bin/ip*
387478f58a0669173fb6557d392a58e9 /bin/ip
1dd0f3b100bd6efc4664da0cdefff801d7d2efd8 /bin/ip
1d418ae3a767280c7fc6026a25e5bb9774c0e8afc7b3387b547765b62cbe578f /bin/ip
78868acd29e4a33194fb786f6589d3d1 /bin/ipcmk
8c22a129ff4b5748cc62222a93ba8471d7fdce19 /bin/ipcmk
34a068d7f85e85746b3fc98502fa96a734cc51f3a9d49cad92911e8f239bd9c9 /bin/ipcmk
69c2bedc20e77c039912c9d5e7af33db /bin/ipcrm
7992a936b28359d7f087a448d2b8a2418ef4f112 /bin/ipcrm
cded383eb3b74467409c1731c2804350fe3d1123bdac7304c1c6f3af9e7976f7 /bin/ipcrm
499f17765c0aa55ac99739c9bcac1d0c /bin/ipcs
c476949e77ef8710398fd8ec4f78c8cf1d76a420 /bin/ipcs
33c77a5b625f4de919f55dc24207645d219a2fde2e0b92be27c5cda8c662cd72 /bin/ipcs
6a738c5c2506f7e87c9458e0c3df378f /bin/iptables-xml
ba97af2e429aca6beb5a2b8861e370bbf874dee9 /bin/iptables-xml
cb8c10461da5247e8d6d63a123ba563df95ae1e78f29e1717eb8bb02c2ca045b /bin/iptables-xml
MIME 유형으로 파일 찾기 (파일 확장자 무시):
$ bh_findmime -elf /bin | head
/bin/[
/bin/addpart
/bin/appres
/bin/apt
/bin/apt-cache
/bin/apt-cdrom
/bin/apt-config
/bin/apt-extracttemplates
/bin/apt-ftparchive
/bin/apt-get
결과를 xargs로 파이프하여 체크섬을 빠르게 계산할 수 있습니다:
$ bh_findmime -pe ~/Downloads/ | xargs shasum
d9e49c4209087170e36cbef689d96240d736cf3b /Users/menteb/Downloads/CSCWCNG.dll
50dfeea02e89f41caf52df152c7cb923c667bffc /Users/menteb/Downloads/Receitanet-1.10.exe
86a5f89d43ab11456fb817aeceb14b83cc6c2608 /Users/menteb/Downloads/Xojo2017r3Setup.exe.opdownload
문자열을 다양한 출력 형식의 16진수로 변환
$ bh_str2hex mentebinaria
6d 65 6e 74 65 62 69 6e 61 72 69 61
$ bh_str2hex -x mentebinaria
\x6d\x65\x6e\x74\x65\x62\x69\x6e\x61\x72\x69\x61
$ bh_str2hex -c mentebinaria
{ 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x69, 0x61 }
bashacks에는 아주 기본적인 오류 처리가 있습니다. 함수가 필요한 인수를 받지 못하면 그냥 1을 반환합니다.
더 많은 기능이 있습니다. 설치하고 직접 확인해 보세요. :)
일부 문자열 함수에서는 bash가 특수 문자를 해석하려고 하기 때문에 특수 문자를 이스케이프해야 합니다. bh_strxor 함수를 사용하는 다음 예를 참조하세요:
$ bh_strxor 0x41 fernando
'$3/ /%.
$ bh_strxor 0x41 "'\$3/ /%." # string between double quotes and dollar sign escaped
fernando
많은 bashacks 함수는 bash의 단어 분리(word splitting) 기능을 사용하므로 기본적으로 Zsh에서 작동하지 않습니다. 그러나 다음 명령으로 Zsh에서 단어 분리를 수행하도록 구성할 수 있습니다:
$ setopt sh_word_split
그러면 정상적으로 작동할 것입니다.