본문 바로가기

[NASM] 구조체와 C++ 1. 구조체 C에서 사용되는 구조체는 연관된 데이터를 하나의 변수에 보관하는 것이라 말할 수 있다. 이는 몇 가지 장점이 있다. ● 구조체에 정의된 데이터가 연관되어 있음을 보임으로써 코드를 명료하게 할 수 있다. ● 이를 통해 함수로의 데이터 전달을 단순하게 할 수 있다. 여러 개의 변수를 독립적으로 전달하는 대신에 이를 이용해 하나의 단위만 전달하면 된다. ● 이는 코드의 지역성(locality)을 향상시킨다. 어셈블리의 관점에서 볼 때 구조체는 원소들의 크기가 제각각인 배열로 볼 수 있다. 실제 배열의 원소들의 크기는 언제나 같은 형이자, 같은 크기여야 한다. 이를 통해 실제 배열에서는 배열의 시작 주소와 원소의 크기, 원소의 번째 수 만 알면 원소의 주소를 계산할 수 있게 된다. 그러나 구조체의 .. 더보기
[MASM] VisualStudio2010에서 어셈블리 프로그래밍 하자... nasm 공부를 대충 훑어보고, masm으로 넘어오면서 어셈프로그램 환경설정 때문에 시간이 많이 소모됐다. 비쥬얼로 하려는데 관련자료가 엉망진창...;; 영어문서 보고 대충대충 하긴했는데... 정리해놔야 겠다. 1. irvine 라이브러리 다운... http://kipirvine.com/asm/gettingStartedVS2010/index.htm#batch irvine 라이브러리를 제공하는 사이트에 들어가서 다운받는다. 일단은 C드라이브에 Irvine 폴더 하나 만들어 놓고 압축풀었다. 뭐 대충 관련 라이브러리와 이에 따른 예제 폴더가 들어있다. 관련 자료를 받았으니 이제부터 masm 프로젝트를 생성한다. 2. VisualStudio 2010을 실행하여 새로운 프로젝트를 생성한다. 프로젝트 생성은 [W.. 더보기
[Reversing] CodeEngn BasicRCE Level4 [문제04] 이 프로그램은 디버거 프로그래을 탐지하는 기능을 갖고 있다.디버거를 탐지하는 함수의 이름은 무엇인가? 문제가 계속 왜 이런지 모르겠다... ㅇ_ㅇ;; 공부하려고 왔더니... 검색만 시키고 있다... 제대로 된 분석을 하고싶단 말이다... 이번은 그냥 검색할끄다... Syntax BOOL WINAPI IsDebuggerPresent(void); Parameters This function has no parameters. Return Value If the current process is running in the context of a debugger, the return value is nonzero. If the current process is not running in the con.. 더보기
[Reversing] CodeEngn BasicRCE Level3 [문제03] 비주얼베이직에서 스트링 비교함수 이름은? Basic_L03.exe ㅇ_ㅇ;; 인터넷에서 찾아보려다가... 그래도 다운받을 수 있는 프로그램도 올려놨고 해서... 그냥 까보기로 한다... 이번에는 WinHex 프로그램을 사용했다. 코드를 살펴보면 왠지... 왠지 모르게... 이걸 비쥬얼베이직에서 사용할 것 같고... 스트링을 조작할 것 같고... 뭔가를 비교할 수 있을 것 같은... __vbaStrCmp() 라는 함수명이 눈에 띈다... [Visual Basic에서 쓰는데 String을 Compare합니다... 뭐 이렇게 말하는 함수려나...;;] 인증페이지에서 확인했더니... 되더라... 그냥 인터넷에서 찾아볼 것을 그랬나...;;; 더보기
[Reversing] CodeEngn BasicRCE Level2 [문제02] 패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오. Basic_L02.exe 문제에서 이미 제시하였지만, 다운받아서 실행하면 정말로 실행이 안된다. 많은 방법이 시도 될 것이지만, 아직 나의 한계로는 많은 방법이 떠오르지 않는다. 그래서 HexEditor를 이용하여 프로그램의 바이너리 코드를 확 까보기로 한다. HexEditor를 이용하여 문제의 실행파일을 까보면 다음의 함수를 호출하는 부분을 확인한다. Dialog를 불러오고, 끝내고, Dialog Text정보를 확인하고, 메세지 창을 띄우고... 각각의 역할을 맡는 함수들이 호출되지만 정확한 실행흐름의 파악이 되지 않는다. 조금 더 프로그램을 살피기 위해서 마우스 휠을 넘기답면 또 아래와 .. 더보기