본문 바로가기

Subject

AutoHotkey] 설명, 예제 1.설명 -매크로 만드는 프로그램. -소스파일(.ahk)을 오토핫키 컴파일러를 이용해 실행파일(.exe)로 변환하여 사용 >소스파일 >실행파일 >컴파일러 2.예제 -F1키를 눌렀을 때 메시지 박스 출력, F3 누르면 프로그램 종료.>소스코드 작성/* testAhk.ahk */F1:: ;hotkeyMsgBox, First Program!Return F3::exitapp ;exit program/* end */ >컴파일 3.암호 컴파일/디컴파일 -암호를 설정하여 컴파일하면, 디컴파일시 해당 암호가 필요. >암호 컴파일(ahk2exe.exe) >디컴파일 더보기
Python] ROL, ROR 1. ROL -Rotate Left -Shift Left 연산에서, MSB 오버플로우시 LSB로 되돌아온다.1001 0000 -> 0010 0001 -소스 코드#RotateLeft Functiondef rotateLeft(x, n):shiftBit = x > 8 - nresult= shiftBit | carryBitreturn result #mainori=0x31 print "ori:{}".format(hex(ori))print "bin:{}".format(bin(ori)) print "---------------------"shfData=rotateLeft(ori, 5); print "shifData:{}".format(hex(shfData))print "bin:{}".format(bin(shfData.. 더보기
Python] For 반복문 1.for -리스트 멤버 반복>>> list=[1,2,3]>>> result=0>>>>>> for x in list:... result += x...>>> print(result)6 -특정 횟수만큼 반복>>> for x in range(10):... print("{}번째 출력\n".format(x)) ...0번째 출력 1번째 출력 2번째 출력 3번째 출력 4번째 출력 5번째 출력 6번째 출력 7번째 출력 8번째 출력 9번째 출력 ->range(n): 0 ~ n-1까지의 값이 저장된 리스트를 반환.>>> print (range(3))[0, 1, 2] ->"{}번째" .format(x,y):포맷스트링, {}와 매칭>>> print ("{}pple {}oy {}andy".format('[a]','[b]','[.. 더보기
Python] 리스트 1. 리스트 -배열과 비슷>인덱스로 접근. -다른 리스트와 합칠 수 있음.>>> list1 = [1,2,3]>>> list2 = ['a','b','c']>>>>>> list3 = list1 + list2>>> print (list3)[1, 2, 3, 'a', 'b', 'c'] -다양한 자료형을 하나에 담을 수 있음.>>> list1 = ['Strings', 'Guys', 10]>>> print(list1)['Strings', 'Guys', 10]>>> print(list1[0])Strings>>> print(list1[1])Guys>>> print(list1[2])10 -` - `를 붙이면 뒤에서부터 인덱싱>>> print(list1[-1])10>>> print(list1[-2])Guys>>> print.. 더보기
notepadd++를 이용하여 C/C++ 컴파일하기 0.준비 -Notepad++ 32bit > Plugin Manager //64bit에는 Plugin Manager가 없음. >NppExec 플러그인 설치 -MinGW>Minimalist GNU for Windows>GNU 소프트웨어 도구 모음.>Win API용 헤더 지원. 1.MinGW 설치 1)공식 홈페이지(http://www.mingw.org/)에서 설치 파일을 다운. 2)설치파일을 실행하여 설치. 3)C:\MinGW\bin\mingw-get.exe 실행(MinGW 설치매니저)>g++ 체크 4)g++ 컴파일러 경로(C:\MinGW\bin)를 환경변수로 등록. 2.NppExec 설치 1)Plugin - Plugin Manager 실행 2)NppExec 설치 3.실습 1)Notepad++로 소스코드 작성.. 더보기
PE 구조 - 2) IAT 보호되어 있는 글입니다. 더보기
IDA] 사용법 1. Code, Undefine -Undefine: 디어셈블한 명령어를 단일 바이트로 쪼갠다.>잘못 해석된 명령어(난독화, 패킹 등으로)를 Fix 할 때 사용. ->E8은 명령어가 아닌 1 바이트 데이터인데, 명령어(Call의 시작바이트)로 해석되어 명령어 조합이 이상해진 상태 정상: 데이터(E8) + Mov eax(B801000000) + ...현재: Call 1004c00(E8 B8010000) + ... ->Undefine 기능으로, 잘못 해석된 명령어를 단일 바이트로 나눈 상태. -Code: 지정한 주소부터 명령어를 재해석한다. 더보기
지뢰찾기 맵핵 구현 0.목표 -도움말 버튼을 눌렀을 때, 전체 지뢰가 표시되도록 한다. 1.정보 -지뢰 표시 -> ShowBombs() -도움말 -> DoHelp() 2.실습 -ShowBombs() 분석1)IDA의 Xref 기능을 이용해, 함수가 호출되는 시점을 확인 ->GameOver() 함수에서 호출된다. 2)GameOver()를 분석하여, ShowBombs()가 호출될 때의 인자값을 확인>Call ShowBombs()에 BP를 걸고 지뢰를 클릭해 게임오버가 되게 한다. ->EAX=0xA 일 때, ShowBombs()가 호출되며 모든 지뢰가 표시된다. -DoHelp() 분석1)DoHelp()가 호출되는 주소를 확인. -올리디버거를 이용하여, Call DoHelp()를 Call ShowBombs()로 변경.>ShowBom.. 더보기
2장] 클라이언트 보안 - 1) 윈도우 라이센스, 공유폴더 0.라이센스 모드 -Per Server: 서버에 연결하는 클라이언트 숫자만큼 라이센스를 구매.>1:N 연결에 사용. -Per Seat: 라이센스가 있는 클라이언트는 모든 서버에 접속 가능. 1.공유 자료 관리 -공유 자료에 대해 Everyone 그룹은 '읽기' 권한만을 갖는다. 2.퍼미션 -NTFS 파일 시스템에서, 데이터에 대한 사용자의 접근 제어 기능. -사용권한 종류(파일, 폴더, 공유폴더) >읽기, 쓰기, 모든 권한 등, 상세 설명은 생략//너무 많아서 기출 풀어보고 문제 나오면 책 보고 공부하는걸로. 3.관리적 공유 폴더 -관리 목적을 위한 기본적인 공유 기능. -퍼미션이 폴더에만 적용된다. -NTFS보다 약한 보안. -사용자에게 보이지 않는다. -네트워크 접근만 제어 가능하다.(로컬 접속 제어.. 더보기
IDA] 설명, 사용법 1.IDA 설명 -Interactive(대화형의) Disassembler -작업을 원본 실행파일이 아닌, idb라는 데이터베이스에서 진행한다.>값을 변경해도 원본에 영향 X.>원본 파일이 없어도 idb 파일만 있으면 분석 가능. -되돌리기 기능이 없다>잘못 수정했을 경우, 종료시 'Dont SAVE the database' 체크를 해야 한다. -단축키가 매우 많다. 2.기본 메뉴얼 -텝 바꾸기>Ctrl + Tab>Alt + 숫자 -그래픽 뷰에서 주소값 표시>`Option> General> Line Prefix 체크` -종료시 나타나는 창의 설명 -데이터 타입 변경(db:BYTE / dw:WORD / dd:DWORD) >대상 주소를 클릭하고, 단축키 'd' -문자열 타입 변경(유니코드 등)>대상 주소를 클.. 더보기