리버싱 [코드엔진] Basic RCE L14 풀이 실행 파일을 DIE에 올려보았다. UPX 압축을 풀었다. 압축을 푼 파일을 IDA에 올리고, F5를 눌러 디컴파일해보았다. 그리고 유의미해 보이는 sub_401025 함수에 들어가보았다. 또 win32api에서 중요한WndProc함수인 sub_4011E2 함수 안에 들어가보았다. 중간 부분에서 do while 연산을 볼 수 있는데, 이곳에서는 byte_403037에 어떠한 연산을 수행해서 새... 코드엔진리버싱리버싱 KGB messenger CTF challenge | Login (easy) apk 다운로드 apktool 이용 androidmanifest.xml 파일 확인 기본적인 것들 확인 가능 allowBackup="true"도 볼수 있음 로그인 하려면 User id와 password 필요 res > string.xml 파일에서 User 확인 가능 RkxBR3s1N0VSTDFOR180UkNIM1J9Cg== 인것을 보아 암호화 된 것 같음 Base64로 디코딩 FLAG{57ER... CTF리버싱INCOGNITO안드로이드CTF [InsecureBankv2] Developer Backdoors 개발자 백도어: 모바일 앱을 배포하기 전/후 소스코드에 최고 권한이 부여한 계정을 삽입하고, 문제가 발생했을 때 해당 계정으로 접속하여 디버깅 수행 보통 본인이 개발한 앱의 모든 기능이 정상적으로 동작하는지 테스트하려고 백도어 코드를 삽입 백도어 코드를 삽입하고 배포한다면 권한이 없는 사용자가 백도어 경로로 접속하여 중요 정보를 획득 가능 adb 사용하여 apk 파일의 위치 확인 adb pu... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO [InsecureBankv2] Hardcoded secrets 하드코딩: 프로그램 개발자가 기억하기 쉽도록 특정한 정보를 소스코드에 그대로 입력한 것 모바일 앱 실행 시 사용자에게 입력받아야 할 정보를 소스코드에 입력하거나 변수, 아이디, 비밀번호, 대칭키 등 중요 정보를 주석처리 하는 것 안드로이드 어플리케이션은 디컴파일이 가능하기 때문에 중요 정보를 하드코딩 하는 행위는 위험함 adb 사용하여 apk 파일의 위치 확인 adb pull <apk 위치>... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO abex' crackme 분석 #1 CD-Rom 이라는 단어를 보면 HD가 HDD(Hard Disk Drive)를 의미한다는 것을 추측할 수 있습니다. 하지만 어셈블리 언어로 작성을 하면 어셈 코드가 곧 디스어셈 코드가 되기 때문에 EP에 main 함수가 바로 나타나는 직관적인 코드는 어셈블리 언어로 개발했다는 증거가 될 수 있습니다. ; MessageBoxA() 호출 401026 ; JE(Jump if Equal) 조건 분기... crackme리버싱리버싱 핵심 원리abexabex [InsecureBankv2] 사전 환경 구축 ◎ 파이썬 2.7 설치 해당 링크에서 Windows x86-64 MSI installer 설치 (윈도우 x64 기준) 설치 시 옵션 하단에서 꼭 환경변수 설정 켜주기 이후 cmd에서 python 명령어 입력 시 다음과 같이 나오면 설치 성공 ◎ InsecureBank Server 작동 git으로 받아올 시 다음 명령어 사용 이후 필요한 파이썬 모듈 설치 requirments.txt에 있는 w... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO 리틀 엔디언 표기법 컴퓨터에서 메모리에 데이터를 저장하는 방식을 의미하는 바이트 오더링(Byte Ordering)의 리틀 엔디언 표기법과 빅 엔디언 표기법을 공부합니다. 바이트 오더링은 데이터를 저장하는 방식을 말합니다. 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 방식입니다. 각 엔디언 방식에 따라 같은 데이터를 각각 어떤 식으로 저장하는지 비교합니다. 빅 엔디언 Style 리틀 ... 리버싱리틀 엔디언 표기법빅 엔디언 표기법리버싱
[코드엔진] Basic RCE L14 풀이 실행 파일을 DIE에 올려보았다. UPX 압축을 풀었다. 압축을 푼 파일을 IDA에 올리고, F5를 눌러 디컴파일해보았다. 그리고 유의미해 보이는 sub_401025 함수에 들어가보았다. 또 win32api에서 중요한WndProc함수인 sub_4011E2 함수 안에 들어가보았다. 중간 부분에서 do while 연산을 볼 수 있는데, 이곳에서는 byte_403037에 어떠한 연산을 수행해서 새... 코드엔진리버싱리버싱 KGB messenger CTF challenge | Login (easy) apk 다운로드 apktool 이용 androidmanifest.xml 파일 확인 기본적인 것들 확인 가능 allowBackup="true"도 볼수 있음 로그인 하려면 User id와 password 필요 res > string.xml 파일에서 User 확인 가능 RkxBR3s1N0VSTDFOR180UkNIM1J9Cg== 인것을 보아 암호화 된 것 같음 Base64로 디코딩 FLAG{57ER... CTF리버싱INCOGNITO안드로이드CTF [InsecureBankv2] Developer Backdoors 개발자 백도어: 모바일 앱을 배포하기 전/후 소스코드에 최고 권한이 부여한 계정을 삽입하고, 문제가 발생했을 때 해당 계정으로 접속하여 디버깅 수행 보통 본인이 개발한 앱의 모든 기능이 정상적으로 동작하는지 테스트하려고 백도어 코드를 삽입 백도어 코드를 삽입하고 배포한다면 권한이 없는 사용자가 백도어 경로로 접속하여 중요 정보를 획득 가능 adb 사용하여 apk 파일의 위치 확인 adb pu... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO [InsecureBankv2] Hardcoded secrets 하드코딩: 프로그램 개발자가 기억하기 쉽도록 특정한 정보를 소스코드에 그대로 입력한 것 모바일 앱 실행 시 사용자에게 입력받아야 할 정보를 소스코드에 입력하거나 변수, 아이디, 비밀번호, 대칭키 등 중요 정보를 주석처리 하는 것 안드로이드 어플리케이션은 디컴파일이 가능하기 때문에 중요 정보를 하드코딩 하는 행위는 위험함 adb 사용하여 apk 파일의 위치 확인 adb pull <apk 위치>... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO abex' crackme 분석 #1 CD-Rom 이라는 단어를 보면 HD가 HDD(Hard Disk Drive)를 의미한다는 것을 추측할 수 있습니다. 하지만 어셈블리 언어로 작성을 하면 어셈 코드가 곧 디스어셈 코드가 되기 때문에 EP에 main 함수가 바로 나타나는 직관적인 코드는 어셈블리 언어로 개발했다는 증거가 될 수 있습니다. ; MessageBoxA() 호출 401026 ; JE(Jump if Equal) 조건 분기... crackme리버싱리버싱 핵심 원리abexabex [InsecureBankv2] 사전 환경 구축 ◎ 파이썬 2.7 설치 해당 링크에서 Windows x86-64 MSI installer 설치 (윈도우 x64 기준) 설치 시 옵션 하단에서 꼭 환경변수 설정 켜주기 이후 cmd에서 python 명령어 입력 시 다음과 같이 나오면 설치 성공 ◎ InsecureBank Server 작동 git으로 받아올 시 다음 명령어 사용 이후 필요한 파이썬 모듈 설치 requirments.txt에 있는 w... INCOGNITO리버싱InsecureBankv2안드로이드INCOGNITO 리틀 엔디언 표기법 컴퓨터에서 메모리에 데이터를 저장하는 방식을 의미하는 바이트 오더링(Byte Ordering)의 리틀 엔디언 표기법과 빅 엔디언 표기법을 공부합니다. 바이트 오더링은 데이터를 저장하는 방식을 말합니다. 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 방식입니다. 각 엔디언 방식에 따라 같은 데이터를 각각 어떤 식으로 저장하는지 비교합니다. 빅 엔디언 Style 리틀 ... 리버싱리틀 엔디언 표기법빅 엔디언 표기법리버싱