분류 전체보기 63

깔끔한 어셈 명령어 정리

1. 명령어 정리 명 령 어 설 명 Data Transfer MOV Move 데이터 이동 (전송) PUSH Push 오퍼랜드의 내용을 스택에 쌓는다 POP Pop 스택으로부터 값을 뽑아낸다. XCHG Exchange Register/memory with Register 첫 번째 오퍼랜드와 두 번째 오퍼랜드 교환 IN Input from AL/AX to Fixed port 오퍼랜드로 지시된 포트로부터 AX에 데이터 입력 OUT Output from AL/AX to Fixed port 오퍼랜드가 지시한 포트로 AX의 데이터 출력 XLAT Translate byte to AL BX:AL이 지시한 데이블의 내용을 AL로 로드 LEA Load Effective Address to Register 메모리의 오프셋 ..

어셈블리 2019.07.09

인스톨 팩토리(Install Factory) 사용방법

일단 실행하면 아래와 같은 화면이 뜨게 된다. 자 이제 설명을 하자면. 다들 알겠지만. 타이틀은? 타이틀입니다 -_-; 마음대로 적어주세요 소스 폴더 - 이것은 패치할 파일이 있는 폴더를 잡아주면 된다. 단 그 폴더에는 반드시 패치하려는 파일만 있어야 합니다. 그렇지 않으면 이상한 파일들까지 설치 프로그램에 모두 껴버리게 되기 때문입니다. 좋지 않은 예로 패치된 파일이 바탕화면에 있다고 칩시다. 만약 소스 폴더를 바탕화면으로 잡는다면, 내 컴퓨터 링크 파일이나 각종 링크 파일들.. 그리고 폴더 등등 모두 exe화 됩니다. 그래서 설치하게 되면 나중에 잡아준 경로에 이 모든 파일이 복사됩니다. 이런 일이 생기지 않도록 c:\\패치 이런 형태의 폴더에 패치한 파일을 두고 그곳을 경로로 잡아주면 됩니다. 기본..

W32Dasm에 대하여

먼저 W32 Dasm을 키신 후 메뉴에서 "Disassember"를 누릅니다. 그러면 팝업메뉴가 뜨는데 "Open File to Disassemble.." 버튼을 누릅니다. 열기 대화창이 뜨는데 여기서 역 어셈블 해올 파일을 선택해주시면 됩니다. 역 어셈블 과정은 짧으면 10초에서 ~ 길면 5분 정도 걸리는데 역어셈블역 어셈블 과정이 완료되면 역 어셈블 된 코드가 표시됩니다. 위의 그림은 W32 Dasm에서의 메뉴들인데 왼쪽부터 차례대로 -------------------------------------------------------------------------------- OPEN - 파일을 역 어셈블 해올 때 쓰는 버튼입니다. SAVE - 역 어셈블 된 결과를 파일로 저장할 때 쓰는 버튼입니다...

조건 분기에 대하여

조건 분기를 하기 위해선 해당 조건이 있어야 합니다. 이 조건을 만들어 주는 명령어부터 먼저 살펴봅시다. 1. CMP cmp eax, ebx 이처럼 cmp는 두 개의 오퍼랜드를 필요로 하며, eax에서 ebx를 빼는 기능을 하며 결과는 따로 저장되지 않습니다. cmp의 결과는 eax가 ebx보다 크다, 작다, 같다, 다르다 등의 형태로 플래그가 세팅됩니다. 2. JZ(jump if zero) = JE(jump if equal), JNZ(~not~) = JNE 모든 조건 분기문은 다음처럼 해석이 됩니다. 예를 들자면 jz의 경우, jump if zero의 약자로 만일 '0'이라면 점프하라는 뜻입니다. 기억하시는데 한결 수월함을 느끼실 겁니다. 이 명령문은 두 오퍼랜드가 같은지 다른지를 살펴보는 데 사용됩니..