함수 호출 규약
# 함수 호출 규약(Calling Convention) - 함수(Caller)와 함수(Calle)간의 약속 - 파라메터를 어떤 방법으로 전달할 것인가? - 사용한 파라메터를 누가 정리할 것인가? - 규약의 종류는 _cdecl, _stdcall,...
올리디버거 Ollydbg
F8 : STEP OVER ( 함수 자동 실행 ) F7 : STEP INTO ( 함수 내부 진입 ) Ctrl + F2 : 재시작 RESTART F9 : RUN F2 : BREAK POINT , : COMMENT SPACE : 코드...
함수호출 CALLER > CALLEE
CALLER 호출 함수 CALLEE 피호출 함수 CALL 주소 CALL 00401000 // 00401000에 있는 함수 호출 ->PUSH EIP ->JMP 00401000 RETN -> POP EIP RETN 값 -> POP EIP -> ADD...
분기 명령 JMP JE JZ JNE JNZ JG JGE JL JLE
# 무조건 분기 JMP 주소 JMP 00401000 // 00401000DMFH WJAVMGOFK -> EIP 레지스터 변수에 00401000을 넣어라 # 조건 분기 0을 기점으로 해야함!! JE, JZ == JNE, JNZ != JG, JGE...
비교 연산 CMP, TEST
CMP EAX, 3 // 논리적으로 빼기 연산 (연산만 수행) JZ 주소 // 연산후 0이면 점프 아니면 점프 안함. TEST EAX, EAX // 논리적으로 AND 연산 수행 JZ 주소 //값이 0이면 점프
메모리 주소 복사 LEA
MOV EAX, DWORD PTR[00406000] 00406000안의 값을 복사 LEA EAX, DWORD PTR[00406000] 00406000라는 주소를 복사 EX) INT N = 5; INT *P = &N; *P = 3; MOV...
반복명령 REP
-REP [어셈명령] // 어셈명령을 반복, 1번 수행할 때마다 ECX 값 1 감소 // ECX가 0이 되면 반복 중단 MOV EAX, 0 MOV ECX, 6 REP INC EAX9 대용량 초기화 INT ARR[100] = 0;...


비트 연산 AND(&) OR( | ) XOR(^) NOT(~)
AND, OR, XOR는 OPERAND 2개 NOT은 1개 # AND 연산 두개가 모두 1이여야 1 AND OPER1, OPER2 // OPER1 = OPER1 & OPER2 EX) AND EAX, EBX // EAX = EAX & EBX #...
기본 어셈블리 ASSEMBLY
기계어 - 2 진수를 가지고 기계가 이해할 수 있도록 표현한 언어 기계어와 어셈블리어는 1:1 매칭으로 이루어져 있음 #OPCODE, operand operand는 0 ~ 3개까지 올 수 있음. ex) MOV EAX, 10 MOV같은 어셈블리를...
MYSQL 자주 쓰는 명령어 모음
MySQLi 함수 - MySQLi 는 MySQL Improved Extension 의 약자로 기존 MySQL 함수의 확장된 함수이다. MySQLi 함수는 기존의 함수 방식과 객체 방식 두 가지 형태로 사용할 수 있지만 PHP 5 이상에서만 사용할...