>>디아블로 자체가 C로 만들어 졌다고 합니다.
C++로 만들어졌을껄요..??
>>우선 제가 C를 다 배워가는데 또 뭘 배워야할지 고민이네요.
>>뭘 배워야할지 알려주시면 감사하겠습니다.
기계어, 어셈블리, C/C++, 자료구조/알고리즘, 이산수학,
API/MFC, 운영체제 구조/원리, 컴퓨터 구조/원리, 네트워크, 암호학, 영어 등등
이정도는 배워야 할듯싶은데
배우는 시간.? 사람에 따라서 천차만별,..
그리고 투자하는 시간에따라서 매우 틀려짐..
다른것들 아무것도 안하고..(밥먹고 똥누고 자는것 등등만 햇을때)
빠르면 3년이면 될꺼 같네요.
하지만 다르거와 병행하게 된다면 더 많이 늘어남..
왜 이렇게 많은가 라는 질문에 이거에 사용 용도를 간단히 적어드리자면
우선 C/C++로 게임이 제작되었기 떄문에
C/C++로 어떻게 프로그래밍 되는지 알아야 어떻게 프로그래밍이 됐을것인지 추측이 가능함 (실제로 C/C++로 된 소스를 보는건 불가능에 아까움)
해당 게임의 exe파일을 메모장으로 열어보면 이상한 문자들이 나오는걸 볼수 있음
이게 2진수로 표현되서 그런데
이걸 울트라 에디터라는 프로그램으로 열면 기계어가 보임..
00 FF FA .....
이걸 (프로그램 이름까먹었넴...;;) 어셈블리언어로 변환해주는 프로그램이 있는데
변환후 어떤식으로 돌아그는지 이해하려면 어셈블리언어가 필요하고
C/C++배워둔것도 이때 꽤 도움이 됨..
그다음 해킹아이템이 배넷아이템.. 즉 네트워크상의 아이템을 해킹하는것이기떄문에
네트워크 공부가 되어있어야 어셈블리언어에 대한 부분이 해석이 될꺼임.
그다음 아이템 정보같은건.. DB에 에 저장됐을껏임.. DB도 좀 알아두셔야 겠군요..;
네트워크로 데이터를 주고 받으니 그 주고받는 중간에서
데이터를 빼돌리고 새로운 데이터로 갈아서 넣어줘야 하는데.
이부분에서 암호해석이 필요할수도 있으니 암호학도 어느정도 알아두셔야 할듯
그러면서 어떤 데이터들이 주고 받고
어떻게 프로그램이 돌아다니는지를 계속 해석해야 함..-_-;
분석이죠..
그다음 뭐 어떤걸 어떻게 조작해야 아이템이 복사될지가 파악돼면
패치를 하실것인지 아니면 크랙툴을 제작하실껀지를 결정하셔야 하는데
이럴경우 거의 크랙툴를 제작하시는데
그럴때 필요한게 C/C++ MFC/API 자료구조/알고리즘 부분임
(실제로 프로그래밍 하시는 부분임)
만드실때 참조해야 할께 컴퓨터 메모리 부분인데
레지스터 캐쉬 램 부분에 대한건데
이부분은 컴퓨터구조/원리 부분을 공부하시면 이해하실수 있음.
그런뒤 이제 만들어서 사용하시면 되겠구요..
이 게임이라것이 윈도우에서 돌아가기 떄문에
운영체제 구조는 알고 있으셔야 어느정도 착오 없이 만드시게 될테고
또 사람이 만든다는게 완벽할수 없기때문에 이런저런 시스템 에러적인 부분이 뜰수 있는데.. 그걸 고칠려면 에러를 해석해야 하는데
이때 영어도 좀 필요하고.. 컴퓨터 구조 운영체제 구조가 도움이 됨..
상황에따라 더 배워야 할께 생길수도 있고
적게 생길수도 있음.
하지만 이정도는 해둬야 하지 않으실까 생각됨..;
이정도 공부하시면 디아블로뿐만 아니라 다른 게임도 어느정도 해킹 가능하지만
걸리면 깜빵.. 하지만 크게 해킹할수록 깜빵나온뒤 스카웃될수 있음.;
예를들어 리X지 게임 서버를 완전이 마비시켜 버렸다 라고 하면..
보안쪽의 회사쪽에서 스카웃될 가능성 큼..ㅎㅎ
원래 해킹 크래킹 같은게 아무나 쉽게 하는 부분이 아님..
공부를 많이 하시고 경험도 많으셔야함..