안녕하세요.
전편에선 포커뷰어가 무엇인지 알아봤는데 이번엔 첫 입문단계입니다.
일단 언어들을 정해주어야 해요.
저같은경우 그리고 이 블로그에선 C# 을 다룰것입니다.
굳이 C언어를 사용하여 만들 필요는 없어요 (제 주언어는 C언어입니다)
언어는 중요하지 않습니다.
그리고 사용할 라이브러리는 FlatBuffers 라는 구글에서 만든 라이브러리입니다.
속도가 굉장히 빠르다고 해서 사용해봤고 이에 소켓 라이브러리는 SuperSocket을 사용했습니다.
필요한것 정리 : Visual Studio 2019, C# 7v, SuperSocket, FlatBuffers, Faze Clan 블로그
모든 설치와 준비가 마쳤다면 시작해봅시다.
서버와 클라이언트 두개를 제작해야 하는데 아무거나 상관없지만 클라이언트부터 해봅시다.
C# - > Windows Forms (.Net FrameWork) 로 프로젝트 만들어주세요 (이글보고 있음 다 아실테니)
폼같은경우 디자인이 필요없습니다.
왜냐면 어차피 없앨거기 때문이지요.
폼은 없앨거라 this.ShowInTaskbar = false, this.Visible = false 를 줘서 폼을 숨겨주세요.
보시는 봐와 같이 스레드를 여러개 만들어서 동시작업을 처리할겁니다.
1. 보내는 로직 스레드
2. 받는 로직 스레드
3. 프로세스 찾는 로직 스레드
각각 스레드로 돌립니다 ( 스레드는 더 있습니다 )
스레드가 아직 무엇인지 모르겠다 하신분들을 위해 간단히 설명 해볼게요.
이런건 태클걸지 말고 대충 대충 넘어가자구요.
a = 0; // 전역변수
main()
{
while a < 5 { a++; }
}
func1()
{
while a < 5 { a++; }
}
func2()
{
while a < 5 { a++; }
}
스레드가 아닌 방식 : main함수 종료 후 func1 함수 진입 후 func2 진입
스레드를 사용한 방식 : main함수와 func1함수 func2 함수 동시에 동작중
어찌됐건 starting() 함수에 진입해보도록 합시다.
잘 안보일 수도 있으니 큰이미지로 해놨어요
참고로 클라이언트는 SuperSocket이 아닌 그냥 소켓입니다 (나중에 소개)
테스트 연결은 테스트 서버를 말하는겁니다.
저 같은경우 스레드를 만들때 람다식을 이용했어요 ( 너무 깔끔 )
주석처리는 혹시 몰라서 작성했는데 필요없더라구요.
일단 첫번째 해야할일은 프로세스를 찾는거에요
어떤 프로세스냐 ?
H사의 포커류, N사의 포커류, P사의 포커류 입니다.
일단 해당 기업이름이 나오기에 펜으로 그었어요.
ProcessFind() 함수의 내부입니다.
일단 N사와 P사는 보안이 없어서 설명할 가치고 없고 H사는 보안이 있어요 그래서 다음편에 자세하게 알아보도록 하고
일단 Stopwatch 클래스를 사용해서 15초를 재는 이유는 H사의 N 가드가 장착돼어있어요.
그 악명높은 N프 머시기 있잖아요 ( 쓰레기라고 취급받는 )
얘 때문에 15초를 재는겁니다 ( 15초전이지만 대략잡아 15초로 해놨어요 )
rootkit 기능중에 hideprocess 기능이 있는데 리버싱이나 시스템 프로그래밍좀 해봤다면 알거에요
스텔스라고도 부르더라구요.
어쨋든 rootkit입니다.
그럼 여기서 리버싱을 해야하나 ? 걱정마세요 저도 리버싱이 주분야이지만 리버싱한번 하지 않아도 충분히 제작이 가능합니다.
다음편에는 H사의 보안을 살펴보고 이걸 어떻게 bypass(우회) 하는 방법에 대해 (제가 했던 방식도 포함) 설명해드릴테니 찾아봐주세요
'programming' 카테고리의 다른 글
포커뷰어 제작원리 서버편 두번째 (0) | 2020.05.30 |
---|---|
포커뷰어 제작원리 서버기초편 (1) | 2020.05.29 |
포커 핵 제작 원리 통신설정편 (1) | 2020.04.15 |
포커 게임 핵 제작 원리 bypass편 (17) | 2020.04.12 |
카드 게임 뷰어 제작원리 소개편 (5) | 2020.04.12 |