- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이더리움
- V2
- lending
- DreamHack
- 비트코인
- security
- solidity
- hacking
- wargame
- 리눅스
- 반딧
- web3
- bitcoin
- 블록체인
- compound
- BANDiT
- Linux
- Crypto
- 코인
- shellcode
- 해킹
- Leak
- blockchain
- defi
- pow
- overthewire
- 해시
- PWN
- pwnable
- Ethereum
목록study_SECURITY (9)
Nullorm
CryptoHack – HomeA free, fun platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard?cryptohack.org 이번 문제도 그냥 MITM이다. OverviewAlice와 Bob이 어떠한 값들을 주고받는지 살펴보자. 우선, nc로 연결해보면,Intercepted from Alice: {"supported": ["DH1536", "DH1024", "DH512", "DH256", "DH128", "DH64"]}이렇게 나오고, Bob은 Intercepted from Bob: {'chosen': 'DH1536'..
CryptoHack – HomeA free, fun platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard?cryptohack.orgDiffie-Hellman Key exchange이 프로토콜은 DLP:Discrete Logarithm Problem을 바탕으로 만들어진 키 교환 프토로콜이다. $A = g^a mod\ p$ 를 알고 있을 때, $(g, p, A)$를 모두 알고 있어도, $a$ 값은 알기 어렵다는 것을 기반으로 하고 있다. 좀 더 자세히 보면,Alice와 Bob이 통신키(세션키)를 교환하고자 할 때 안전하게 교환..
하다가 너무 헷갈려서 그냥 정리하는게 맞겠다~ 싶음. 정리해야 할 함수들 chr() ord() bytes.fromhex() / .hex() base64.b64encode() / .b64decode long_to_bytes() : long -> byte string bytes_to_long() : byte string -> long 시작해보자. 1. chr() 함수 하나의 정수를 인자로 받고, 해당 정수에 해당하는 유니코드 문자를 반환한다. chr(97) = 'a' 2. ord() 함수 하나의 문자를 인자로 받고, 해당 문자에 해당하는 유니코드 정수를 반환한다. ord('a') = 97 이정도는 오케이. 그런데 그 다음부터 헷갈리더라. 3. bytes.fromhex() hex 숫자를 인자로 받고, byte..
포너블을 하다가 system함수가 종종 버그가 터지곤 한다. 이렇게 system함수로 잘 진입을 했는데 이런 이상한 함수로 /bin/sh를 넘겨주면서 system함수를 실행할 수 없게 되는 경우가 있다. 이걸 좀 고쳐보려고 한~~참동안 궁리해본 결과 .... execl함수를 쓰기로 했다!! 평소에는 execve, system 이 두 함수만 생각하고있었어서 사용하기 복잡한 execve를 써야하나 ... 싶었는데 그냥 execl쓰면 된다. 사용법 execve( binsh 주소, binsh 주소, NULL); 이렇게 그냥 주면 된다. 어짜피 포너블에서 binsh이든, cat이든 사용하려면 문자열 주소는 알고있을테니까 그거 넣으면 되고, 마지막 인자로 p32(0)이나, p64(0) 넣으면 되는거니까, bof 크..
인코딩(encoding)과 디코딩(decoding) 파일에 저장된 정보의 형태나 형식을 변환하는 처리 / 처리방식을 말함. 이메일, 문자메시지 등의 전송, 동영상이나 이미지 영역에서 많이 사용됨. 인코딩의 반대는 디코딩 Base64 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII문자로 표현하기 위해 만들어진 인코딩. ASCII문자 하나가 64진법의 숫자 하나를 의미하기 때문에 base64라는 이름을 가졌다. 8비트짜리 바이트 3개를 6비트씩 4개로 쪼개어 base64 코드 4개로 바꾸어 표현한다. base64 코드를 바이너리로 디코딩하기 편하게 하기 위해 base64 코드를 무조건 네 글자 단위로 만들고, 빈 부분을 '=' 문자로 채워둔다. encoding 예시 원문 E 1 L 바이트 값..
지난번 게시물에 이어서 확장 유클리드 알고리즘을 시작해보도록 해보아요... 지난 게시물에서, 유클리드 알고리즘에 의해 GCD(a, b) = GCD(b, r) 이 성립한다는 것을 알았음. (※ GCD : greatest common divisor : 최대공약수, a % b = r) 확장 유클리드 알고리즘은 최대공약수 gcd를 구하는 것 뿐만아니라, 정수해를 가지는 부정방정식 ax + by = c가 주어질 때, a, b의 최대공약수를 구함과 동시에 이 방정식을 만족하는 x, y를 찾아주는 알고리즘이다. 당연히 식이 하나에 두 변수가 있으므로 unique한 해를 찾는다기보다는 무수히 많은 (x, y) 쌍에 대한 규칙을 찾는 것이라고 보면 될 것이다. 코드로 구조를 살짝 표현 해볼까? function exten..
유클리드 호제법두 개의 자연수리 최대공약수를 "빠르게" 구하는 알고리즘.여기서 빠르게 라는 말은 인간이 빠르게 구하려고 하는것도 물론 맞지만 컴퓨터가 빠르게 계산하기 위함인 것도 있다.a와 b를 나눈 나머지를 r이라고 할 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다.아 티스토리에서 라텍스 쓰는법 모르겠어요~~~ a % b = r이면 gcd(a, b) = gcd(b, r) (단, b > r > 0)36 % 24 = 12 이고,24 % 12 = 0 이므로, 0이 되기 한 단계 전인 12가 36과 24의 최대공약수임.이걸 코드로 표현해보면,#include int GCD(int a, int b){ if (a % b == 0) return (b); return GCD(b, a ..
1. 정적분석 vs 동적분석 정적분석(Static Analysis)는 외적인 관찰만을 통해 정보를 알아내는 것을 의미하고, 동적분석(Dynamic Analysis)은 실행을 통해 동작을 분석하는 것을 의미함. 둘 중 어느 방법이 더 좋다고 할 수 있는지 말하기 힘들며, 두 방법을 모두 적절히 혼용하여야 대상을 효과적으로 분석할 수 있음. 동적인 방법만을 고수하면 큰 구조를 놓칠 수 있고, 반대로 정적인 방법만을 고수하면 실행을 통해 직관적으로 알 수 있는 부분을 분석하느라 시간을 허비할 수 있음. 2. 정적분석 2-1. 정적분석의 장점 정적분석을 사용하면 프로그램의 전체적인 구조를 파악하기 쉬움. 정적 분석 도구들은 프로그램이 어떤 함수로 구성되어있는지, 어떤 함수로 구성되었는지, 서로 어떤 호출 관계를..
1. C언어 코드의 바이너리 번역과정 code(.c) --전처리-- preprocessed source file (.i) --컴파일-- assembled file (.s) --어셈블-- object file (.o) --링크-- 바이너리로 번역! 1-1. 전처리(preprocessing) 1. 주석제거 // 또는 /**/으로 구성되어있는 주석을 제거하는 과정 2. 매크로 치환 #define으로 정의된 매크로는 자주 쓰이는 코드나 상숫값을 단어로 정의한 것 #define HI 3 //HI를 3으로 치환하라는 명령어 3. 파일 병합 일반적인 프로그램은 여러개의 소스와 헤더파일로 구성. 컴파일러는 이런 것들을 컴파일 이후 합치기도 하지만 전처리단계에서 합친 이후에 컴파일하기도 함. gcc에서는 -E 옵션을 사..