들어가며월핵(Wallhack)은 장애물(벽, 건물, 오브젝트등)을 무시하고 플레이어를 볼 수 있게 해주는 기술입니다.주로 FPS(1인칭 슈팅)게임에서 사용되며, 여러 기법이 존재합니다.저번 글에 이어 월핵을 제작하기에 앞서 먼저 대표적인 월핵 기법과 종류에 대해서 알아보겠습니다.https://imoracle.tistory.com/49 [Assaultcube] FPS게임 분석 및 핵 제작 - 2 -https://imoracle.tistory.com/48 [Assaultcube] FPS게임 분석 및 핵 제작 - 1 -https://imoracle.tistory.com/49 [Assaultcube] FPS게임 분석 및 핵 제작 - 2 -핵툴 개발 리버스 엔지니어링을 통해 동작중인 게임의 메모리주imoracle..
들어가며지난 포스팅을 이어서 작성하려 합니다https://imoracle.tistory.com/61 [NAS] 고장난 나스서버 하드디스크 복구기 -1-들어가며 현재 글쓴이는 시놀로지 나스를 사용중에 있으나, 가동중이던 오래된 LG NAS가 존재하며 기기가 죽었다..LG는 NAS 사업에서 철수한지 오래이며.. 나스 기기를 AS 받기란 불가능에 가깝다사imoracle.tistory.com 저장소 이미지뜨기 ddrescue는 손상된 디스크에서 데이터를 가능한 한 많이 복구해주는 강력한 리눅스 도구입니다. 물론 이번에는 디스크를 통째로 img 파일로 떠서 윈도우 환경으로 가져가 ext4 64KB를 지원하는 툴에 올려 파일을 살펴볼겁니다. ddrescue 설치 후 ddrescue -f -n /dev/md127 ..
들어가며애드센스를 가입하고 적용하기 이전에 블로그를 개설 했을때부터 이미 개명이 된 상태였습니다만구글 계정에서 눈에 보이는 이름만 변경을 해서 사용 했습니다.그런데 최근 애드센스 인증을 받으라는 문구가 떠 인증을 진행했지만 구글에 등록된 법적이름과통신사의 이름이 달라 인증이 불가능한 상황에 놓이게 되었습니다. 노력 및 해결우선 법적이름을 변경하기 위해 구글 계정관리에서 변경을 시도 해봅니다만 되지 않습니다.양식폼에서 요구하는대로 개명에 대한 기본증명서-특정증명서 및 운전면허증을 첨부해 신청 후 하루가 지나 메일이 도착합니다 결제프로필의 이름을 변경할 수 없다고 새로 만들라고 하네요 그러나 결제 프로필은 2개 이상의 프로필을 허용하지 않기에 새로 만드는건 불가능합니다.많은 분들도 같은 상황에 놓이신걸 확인..
들어가며https://imoracle.tistory.com/63 [NAS] 고장난 나스서버 하드디스크 복구기 -2-들어가며지난 포스팅을 이어서 작성하려 합니다https://imoracle.tistory.com/61 [NAS] 고장난 나스서버 하드디스크 복구기 -1-들어가며 현재 글쓴이는 시놀로지 나스를 사용중에 있으나, 가동중이던 오래imoracle.tistory.com 현재 글쓴이는 시놀로지 나스를 사용중에 있으나, 가동중이던 오래된 LG NAS가 존재하며 기기가 죽었다..LG는 NAS 사업에서 철수한지 오래이며.. 나스 기기를 AS 받기란 불가능에 가깝다사설수리가 있는지는 모르겠으나 이렇게 오래된 기기를 고쳐쓴다는 건 그것 또한 아이러니.이전 iptime 나스 데이터는 우분투에 올려 마운트해 살린적..
들어가며회사의 생산현장에서 USB에 캐드 도면파일을 담아 이동시켜 열어서 도면을 확인하는데 유출이 된 적이 있어 곤란하다고 한다. 현장 PC들이 인터넷이 접속안되게 하지만 내부네트워크는 접속이 되어야하며, 캐드 도면파일이 USB에서 PC로 옮기는건 되게끔, PC to USB는 불가능하게 해야한다고 한다. 머릿속에 떠오른건 USB를 인식하는 드라이버를 StopService 함수나.. 뭐 어떻게 해보려했는데 특정확장자만 이라는 조건이 붙어 역시 후킹만한게 없다고 판단했다. 인터넷의 경우 내부네트워크는 접속이 가능해야하니 이더넷을 죽이는 방법은 불가하니, 프록시를 변경해보려한다. 그래서 구상을 잠시 해보니 해야 할 건.1. 프록시 변조를 통한 인터넷 차단2. Ring 3 권한 후킹을 통한 특정 확장자의 파..
어로스를 선택한 이유NVIDIA RTX 4000번대가 출시 되었을때 RTX4070Ti Aorus Master 제품으로 어로스에 입문하게 되었는데제품의 만듬새나 성능이 굉장히 만족스러웠다 하나의 제품 브랜드에 정착하지 못하고 여러 브랜드들을 사용하고 있었는데 그 이후로 어로스만 구매하기로 마음먹었다 에브가 3060을 떠나보내며.. 어마어마한 크기를 자랑한다. B650 AORUS ELITE AX ICE 이번에 컴퓨터를 한대 더 맞추고 있는 중인데 딱 마음에 드는 녀석이 였는데 그게 바로 이 보드. 화이트 답게 깔끔한 패키징을 보여준다.슬롯 구성도 훌륭하고 방열판도 굉장하다. 그리고 무엇보다 묵직한게 신뢰가 간다. 사운드칩셋이 약하긴 하지만 사운드를 신경쓴다면 이미 좋은 스피커와 사운드카드 또는 DAC를 ..
시리얼이 5B134977135E7D13 일때 Name이 무엇인지 알아내면 된다. 프로그램 실행모습 IDA참조하는 곳으로 가보자여기서 유심히 보아야 할 곳이 보인다.Name을 입력받아서 문자열 길이만큼 반복문을 돌린다. i 가 3이 되면 0으로 초기화 해주고문자열[i] ^ v7[i-1] , 즉 xor 연산을 해줘 버퍼에 저장해주는듯 하다.그리고 시리얼과 연산된 버퍼를 비교해 분기한다.IDA에서 더 알아보기엔 무리가 있으니 x32Dbg에 붙여보자 x32Dbg위 IDA의 if ( i >= 3) i = 0; 이 있었다시피cmp esi, 3으로 비교를 해주고 xor esi, esi를 통해 0으로 초기화 해주는게 보인다.Name이 입력되면 [esp +10] 부터 차례로 10, 20, 30 을 넣어주고 있다.ec..
OEP를 찾으라고 한다. 프로그램 실행모습폼 하나만 덩그러니 띄워진다. PEID로 보자무엇으로 패킹된지 보이지 않는다. 열어서 직접보자 x32Dbg열어보니 upx나 aspack에서 보이는 pushad 가 보이지 않는걸 봐선 따로 압축, 복호화를 하는거 같은데... 내리면서 루틴이 끝나는 곳에 jmp가 있는지 보자점프하는 곳이 보인다. 이동해보면OEP가 나왔다. 너무 야매로 푼건가.. 싶기도 한데 뭐..
Reversing.kr 의 문제들은 CodeEngn과 다르게 설명이나 힌트없이 프로그램만 딸랑 있어 더욱 집중을 요하는듯 하다. 프로그램 실행모습시리얼을 찾아주면 될듯하다. IDA IDA에 올려 훑어보았다. 성공 실패 문자열과 위로 비교하는 구문들이 계속해 보인다. x32Dbg아무값이나 넣어주었다.입력된 문자열의 두번째 글자와 0x61 (a) 를 비교한다. 두번째 글자를 a로 바꿔주고 다시 진행해본다401150 으로 들어와 살펴보니.입력받은 문자열의 3번째부터 5y가 맞는지 검사한다. 바꿔주고 다시 진행반복문을 돌며 한글자씩 비교한다. 다시바꿔주고 진행입력받은 문자열의 첫번째글자가 0x45인지 비교한다. 제일 앞에 E를 넣어주고 다시 진행하면정답 !
Packing프로그램을 보호하는 방법중 하나입니다. 실행파일을 암호화, 압축을 하는 방법을 칭합니다.압축후 암호화를 할 때 다른 섹션을 만들어 그 곳에 복호화 알고리즘을 저장하며, 실행 시 암호화된 데이터를 복호화 후 실행합니다. Themida & Winlicence - 현존하는 가장 강력한 패커중 하나입니다. anti VM, anti Dump, anti Debug, EP 섞기, 리소스 암호화등 수많은 기능들을 제공하며 더미자 제작사에서는 라이센스 관리기능을 추가한 윈라이센스 또한 존재하고 있습니다. 수많은 상용프로그램들에 사용되고 있으며 카카오톡과 같은 프로그램또한 더미다 패커를 사용합니다. UPX- 가벼우며 포맷을 다양하게 지원하는동시에 프리웨어입니다. 패킹시 upx0, upx1 섹션이 생성되고 up..
메모리 비교보호할 메모리를 읽어봐 비교합니다.클라이언트에서 int형 변수에 17을 넣어주고 출력해줬었습니다.push 11로 17을 넣어주고 있습니다.push 30으로 변조하게되면 감지하게 됩니다. CheckRemoteDebuggerPresentIsDebuggerPresent 함수와 동일한 역할을 합니다만, 현재 시점을 기준으로 값을 불러옵니다. 난독화코드를 읽기 어렵게 만들어 분석을 어렵게 하는 기술입니다.변수명, 쓸모없는 코드등을 이용해 읽기 어렵게 만듭니다.암호화와는 다른 개념이며, 암호화는 키값이 있어야 볼 수 있습니다. PE Header메모리 상에 존재하는 PE Header를 지워 덤핑을 방해합니다. Junk Code / Dummy Code실제로는 아무 역할도 하지 않는 코드입니다만, 코드 ..
브레이크포인트실행중인 대상 프로세스를 디버깅을위해 코드진행을 의도적으로 멈추게 하는걸 뜻합니다.멈춘시점의 파라미터, 변수의 값, 레지스터 등을 알 수 있으며, 소프트웨어 브레이크포인트, 하드웨어 브레이크포인트, 메모리 브레이크포인트로 3종류가 존재합니다. SoftwareBreakPointINT 3 인스트럭션은 Software BP로 많이 사용되는 BP중 하나이며 횟수 제한이 없습니다만 코드변경이 있기에 crc체크를 하는 프로그램에서는 걸리게됩니다.만약 디버깅 중이라면 해당 인스트럭션이 실행될 때 BP가 트리거 되며 자연스럽게 BP로 인식해 넘어가지만아닐때는 예외가 발생하며 예외구문에 걸리게 됩니다. 디버거에서 OPCODE는 CC로 설정됩니다.INT 41 명령어는 커널 디버거를 탐지할 때 사용되며, 보..