Information Security ˗ˋˏ ♡ ˎˊ˗
반응형

분류 전체보기 202

[Reversing 실습] abex’ crackme #1

abex’ crackme #1 : crack 연습 목적용 공개 프로그램 Ollydbg(v1.1) 코드의 특징: 어셈블리로 작성된 코드, 시작 주소가 EP로 매우 간단하고 명확하게 작성(stub code가 없음) - 여기서 MessageBoxA 총 3개의 API 함수를 사용 코드의 목적: MessageBoxA 순서대로 1, 2, 3으로 볼 때, 원래는 1->2로 이동하는데 1->3으로 이동하길 원한다. 코드 분석 00401000 PUSH 0 ; Style = MB_OK|MB_APPLMODAL 00401002 PUSH 402000 ; Title = "abex' 1st crackme" 00401007 PUSH 402012 ; Text = "Make me think your HD is a CD-Rom." 004..

Security/Reversing 2020.04.01

[Reversing 실습] Little Endian 표기법

바이트 오더링: 컴퓨터에서 메모리에 데이터를 저장하는 방식 - 종류: Big Endian, Little Endian 1. Big Endian: 순서대로 표기, 큰 단위가 앞에 나오는 경우 2. Little Endian: 역순으로 저장, 작은 단위가 앞에 나오는 경우 코드를 이용하여 Little Endian을 확인할 수 있다. Intel x86 CPU(윈도우 계열)은 Little-Endian 방식! Ollydbg(v1.1)을 이용하여 직접 만든 exe 파일을 열기 F7/F8을 이용하여 Main함수를 찾을 수 있다. Main함수라는 것을 예측할 수 있는 부분: Arg1, 2, 3 BYTE, WORD, DWORD, ASCII가 코드에 존재한다. 이 곳의 주소를 가지고 dump window에서 찾아보면 Litt..

Security/Reversing 2020.04.01

[Reversing 실습] 문자열 패치 두 가지 방법

https://t-okk.tistory.com/32 Reversing 실습 - 기본 디버깅 1. 기본 디버깅: 프로그램 시작 주소 및 main 함수 확인 - Hello World!라는 프로그램 만들기 Ollydbg(v1.1)로 열어서 확인 Entry Point(윈도우 실행파일의 코드 시작점): 0040126F - Ollydbg에서 F7, F8, F9를.. t-okk.tistory.com 여기서 만든 HelloWorld 프로그램을 가지고 문자열 패치를 진행 1. 문자열 패치 첫 번째 방법 - 문자열 버퍼를 직접 수정 - Main 함수에서 문자열이 저장되어 있는 Text 부분의 주소를 찾는다. - Dump Window 부분에서 Ctrl+g를 통해 그 위치로 이동한다. Text 주소: 0040210C 넉넉하게..

Security/Reversing 2020.04.01

Android Studio, button 누르면 다른 페이지로 이동

button 누르면 다른 페이지로 이동 버튼이 있는 페이지와 이동하고 싶은 페이지를 두 개 만들어준다. 지금 하고 있는 페이지에서 진행하기 때문에 버튼이 있는 페이지는 profile.xml / profile.java 이동하고 싶은 페이지 frag_home.xml / FragHome.java이다. 버튼의 id : imageButton 버튼이 있는 페이지인 profile.java 페이지에서 onCreate() 함수에 코드를 추가해준다. protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.profile); //뒤로가기 버튼 ImageButton imageButt..

Android/Android APP 2019.12.03

Android Studio, apk 추출하기

android studio APK 추출하는 방법 build -> Generate signed bundle click next create new click key stroe path에서 맨 오른쪽 폴더 버튼을 클릭 후 jks 이름을 지정한다. password, First and Last Name 설정하기 signature versions v2를 클릭한 후, FInish Finish 후 났던 오류 error: failed to read PNG signature: file does not start with PNG signature. https://altongmon.tistory.com/835 안드로이드 Generate APK 시 failed to read PNG signature: file does not..

Android/Android APP 2019.12.01

[HackCTF Web] 마법봉 (매직해시 취약점)

문제 풀이 flag 값이 나오기 위해서는 md5로 숫자 240610708 값을 암호화한 값과 sha1으로 입력값을 암호화한 값이 같으면 플래그가 출력된다. 이때 해시 값이 같다고 되는 경우로는 "매직 해시(Magic Hash)"를 이용한다. 밑에서 자세히 살펴보겠지만, 간단하게 Magic Hash란? 비교 연산을 할 때, type juggling을 이용하여 서로 다른 값이 같은 값으로 인식되도록 하는 특수한 동작이다. www.whitehatsec.com/blog/magic-hashes/ Magic Hashes | WhiteHat Security For more than the last decade, PHP programmers have been wrestling with the equals-equals ..

Security/WebHacking 2019.11.28

[HackCTF Web] Read File

문제 풀이 http://ctf.j0n9hyun.xyz:2021/?file=flag.php http://ctf.j0n9hyun.xyz:2021/?command=flag.php http://ctf.j0n9hyun.xyz:2021/?command=123.php command 뒤에 어떠한 값을 넣어도 위와 같은 페이지만 나온다. http://ctf.j0n9hyun.xyz:2021/?command=flaggoogle.com 해당 url을 입력했을 때는 맨 처음 구글 페이지가 뜨는 것을 볼 수 있다. 서버에서는 flag라는 문자열을 필터링하고 있다는 것을 알게 되었다. 필터링을 우회한 후에 command=flag.php로 입력을 해야 원하는 플래그 값이 나올 것이다. http://ctf.j0n9hyun.xyz:20..

Security/WebHacking 2019.11.28

[HackCTF Web] Guess me

문제 풀이 아무 값이나 넣어서 제출하기를 눌렀을 때, 나오는 모습이다. 처음 문제를 보았을 때, 모르는 개념이 많아서 먼저 함수나 php코드 형태를 검색해봤다. PHP 개념 1. extract($_GET) : PHP에서는 일반적으로 $_GET[aaa]를 $aaa로 쓸 수 있다. 하지만 서버 설정이나 버전에 따라서 반드시 $_GET[aaa]를 써야 하는 경우가 있다. 이 때 본문에 $_GET[aaa] 대신 $aaa가 쓰여있다면 오작동을 일으키게 된다. extract함수는 배열의 값을 꺼내주는 역할을 한다. 즉 $_GET[aaa], $_GET[bbb] 가 있다면 $aaa, $bbb로 쓸 수 있도록 만들어준다. 2. trim 함수 : 시작과 끝 문자열에서 공백(또는 문자)을 제거하는 trim 함수 3. fil..

Security/WebHacking 2019.11.28
반응형