드라이브 1번은 x64dbg인 디버거입니다
드라이브 2번은 크랙미 자료입니다 내 제자들용으로 간단하게만든건 오늘은 1번을해보죠
툴 대충 사용법입니다
일단 설정을해서 entry point에 바로가게 하것나 F9으로 시작해 시작위치{entry point}를찻습니다
젤위에 문부터하면
push 숫자 는 스택에 넣는것입니다
스택(Stack)의 개념
한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조
push로 스택에 0대입
push 로 문자열을 올린것같고
push 로 문자열을 또올린것같고
call은 함수를 불러오는기능입니다
call로 MessageBoxA 함수를불러오네요
대충이함수는 메세지박스를 출력하는함수입니다
그후 call로 GetDriverTypeA로 드라이버에 타입을 구하는 함수를 불러오네요
그후
inc esi는 eax 에 1증가
dec eax는 1 감소입니다
그러다가
cmp문으로 두문에 ZF을확인하네요
je[Jump If equal] 만약같다면 그문으로 점프합니다 입니다
계속해보죠
F2기능인 break point를 설명하죠
함수클릭하고 F2를하면 주소값부분이 빨강색이됩니다
만약 컴퓨터가 저함수를 실행하면 그때 멈추는기능입니다
대충저렇게보니 옆에
eax는1
esi는4네요
전글 기억하시죠
eax는 총 -2
esi는 총 +3입니다
대충이걸로 추축하면
eax에원값은 3이었죠
그리고 CD ROM은 아마 eax가 4가되어야하니 6이겠죠
대충 알고리즘따면 이렇게되겠네요
그리고 저걸 메세지뜨게하는방법은많은데
cmp수정 je수정 옆에 eax값바꾸기등등 방법은많습니다