리버싱 [코드엔진] Basic RCE L14 풀이 실행 파일을 DIE에 올려보았다. UPX 압축을 풀었다. 압축을 푼 파일을 IDA에 올리고, F5를 눌러 디컴파일해보았다. 그리고 유의미해 보이는 sub_401025 함수에 들어가보았다. 또 win32api에서 중요한WndProc함수인 sub_4011E2 함수 안에 들어가보았다. 중간 부분에서 do while 연산을 볼 수 있는데, 이곳에서는 byte_403037에 어떠한 연산을 수행해서 새... 코드엔진리버싱리버싱 [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
[코드엔진] Basic RCE L14 풀이 실행 파일을 DIE에 올려보았다. UPX 압축을 풀었다. 압축을 푼 파일을 IDA에 올리고, F5를 눌러 디컴파일해보았다. 그리고 유의미해 보이는 sub_401025 함수에 들어가보았다. 또 win32api에서 중요한WndProc함수인 sub_4011E2 함수 안에 들어가보았다. 중간 부분에서 do while 연산을 볼 수 있는데, 이곳에서는 byte_403037에 어떠한 연산을 수행해서 새... 코드엔진리버싱리버싱 [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