while(true){
	print( "인증 프로그램 설치 안됐네요? 자동으로 리다이렉트 해드릴께요!" );
	wait(Math.random()*5);
	print( "인증프로그램 다 설치 했었네요? 자동으로 이전 페이지로 돌려드릴께요!" );
	wait(Math.random()*5);
}
return success;

 

이 블로그 오는사람 70%는 파판9나 한글패치 관련 게시글이긴 한데.. 그래도 누군간 보겠지 싶어서 써봅니다

 

 

1. 취업 성공했습니다!

 

딱히 놀랍진 않게도 취준생 블로그였습니다 짜잔~

지원했던 회사 스펙트럼이 좀 넓은지라 하나하나 정리해서 간단하게 써보고싶긴한데, 아직 입사날짜만 기다리는 예비 직장인이라 좀 조심스럽네요.

언젠가 기회가 되면 작성해보겠습니다.

 

토익 성적도 2년 만료 직전이었고 졸업 후 지난 시간이 슬슬 년단위가 되가서 걱정스러웠는데, 연말에 좋은 소식 들을 수 있어서 다행이라고 생각합니다.

(몇달동안은 재택이라고 하니 싫어하시는 부모님...)

 

 

2. 게시글이 뜸했던 이유

 

연말 + 취업 성공 소식이 겹쳐서 친구들 만나서 놀고 한턱 내고 한것도 있지만, 그동안 못했던 취미쪽으로 시간 할애가 많아졌습니다.

최근에 한 걸로는

  • 섭종한 게임 데이터 파일 언패킹해서 이미지 추출하기
  • 암호화된 이미지 해제하려고 복호화 방법 / 암호화 기법들 들쑤시고 다니기
    • 실패했습니다.. 암호화 결과 + 128bit 암호화 키는 획득했는데 암호화 방법을 모르겠네요
  • 그랑블루 프로젝트 마저 진행
  • 좋아하는 게임 한글화를 위해 개발자와 소통중 (2021.12.26 기준 진행중)
  • + 물론 게임도 하는중

이런 짓을 하고 다니니 게시글로 정리할만한 내용이 쉽게 생기지 않네요...

 

 

3. 그랑블루 프로젝트는 배포 문제로 고민중입니다

 

프론트엔드 페이지도 거의 다 작성되었고, 배포해서 실제 테스트해봐도 괜찮겠다 싶은 단계가 되었습니다.

다만 이미지가 오고가는 작업이 있어서 트래픽이 좀 걱정되고, 프리티어도 끝나가는지라 AWS에는 무서워서 못올리고 라즈베리파이를 하나 사서 장난감 겸 간이 홈서버용으로 돌려볼 생각이었습니다.

라즈베리파이도 반도체 수급의 희생양이 되었다는걸 알기 전까지는 말이죠... 중고 아니고선 구할 방법이 없네요

 

일단 AWS에 배포하고, 트래픽 측정 기간을 좀 거친다음 결정할 생각입니다. 라즈베리 파이도 기왕 사는거 램 8G짜리는 사는게 좋을것같은데 다들 2/4G매물밖에 없네요.

https://twitter.com/painter_of_100

 

재미있는 프로그래머 개그가 있어요

프사 N차가공 무단전재 가능(비영리)

사유 : 사이드바에서 스크롤이 발생한다는게 마음에 들지 않았음

 

 

1. 스킨 편집 진입

 

 

2. html 수정하기

<s_sidebar_element>
	<div class="widget category text-center" onclick="toggleCategory()">카테고리 보기</div> 
	<div id="category" class="widget category" style="display:none;"> <!-- Category -->
		

	</div>
</s_sidebar_element>
  • 버튼 역할이 되어줄 div를 추가하고, onclick에 toggleCategory란 함수 작성
  • 카테고리를 찾기 위해 id="category" 추가
  • 카테고리에 style="display:none;"을 추가해, 보이지 않는 설정이 default가 되도록 함

 

 

3. toggle 함수 작성

 

<script>
	function toggleCategory(){
		var cat = document.getElementById("category");
		console.log(cat);
    if(cat.style.display=='none'){
        cat.style.display = 'block';
    }else{
        cat.style.display = 'none';
    }
	} 	
</script>
  • 위치는 상관 없지만, 보통 head 안 혹은 맨 아래에 작성
  • none이면 block으로, block이면 none으로 바꿔주는 역할

 

 

4. 결과

사유 : 초반에 env/properties 파일 안쓰고 작업하던게 history에 남아서 노출됨

다행히 돈이 청구되진 않았는데... 

당장 처리하지 않으면 뚝배기를 날리겠다는 사형선고장이 도착했다

 

 

1. BFG repo-cleaner 다운로드

 

BFG Repo-Cleaner by rtyley

$ bfg --strip-blobs-bigger-than 100M --replace-text banned.txt repo.git an alternative to git-filter-branch The BFG is a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository history: Removing Crazy Big Files Re

rtyley.github.io

  위 링크에서 jar 파일을 받는다. 최신버전 기준 최소 JAVA 8 이상이 필요하다

 

 

2. git repo 클론

 

 

git clone --mirror [git-clone-link]

  원하는 폴더에 git 레포지토리를 클론한다

 

  만일의 사태에 대비해 백업해두는것을 추천한다

 

 

3. delete.txt 파일 생성

  방금 클론한 git폴더와 같은 위치에 bfg.jar 파일을 넣고, 삭제할 문자열이 있는 txt파일을 생성한다

  (이름이 반드시 delete.txt일 필요는 없다. 4번 명령어 입력시 맞춰주면 됨)

 

 

4. bfg 실행하기

 

  git clone 명령어를 실행한 그 위치에서 다음 명령어를 입력한다

java -jar bfg.jar  --replace-text delete.txt  repo_name.git

  (실행되지 않으면 bfg.jar / delete.txt / git 이름 3가지가 정확한지 확인)

  다음과 같이 개인정보가 있던 파일이 목록에 뜨며 완료되면 된 것이다

 

 

5. 다시 git에 올리기

 

  방금 모든 history를 들어엎어서 그런지, 기존 저장소에는 충돌이 발생하며 그대로 올라가지 않는다

 

  같은 이름을 그대로 쓰고싶다면, 원격 repo를 삭제하고 똑같은 이름으로 다시만든 후 올리자

  잘 업로드 된 모습

 

   기존 프로젝트(백업본)과 비교하면, 공개되있던 비밀정보가 사라졌다는걸 알 수 있다

목표 : 그랑블루 부계정들 일일 접속보상 자동으로 타기

 

 

1. 계정별 크롬 지정해주기

 

[기타] 크롬 사용자 추가 / 이클립스 사용 설정

1. 크롬 사용자 추가 (사용자 폴더 지정) 1. 기존 크롬 바로가기를 복사해 새 바로가기를 만든다 2. 마우스 우클릭 - 속성 3. 대상 항목에 --user-data-dir=폴더경로 를 추가한다 "C:\Program Files (x86)\Goog..

nato-blog.tistory.com

 

  위 글에서 크롬 사용자 추가 부분을 따라하면 된다

 

  다음과 같이 크롬 바로가기를 계정수만큼 만들고, 각 바로가기마다 속성 - 바로가기 - 대상에

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:\\\\chrome\\\\granblue1"
:: 당연히 chrome 설치 경로가 다르다면 수정해줘야한다

  이렇게 서로 다른 user-data-dir을 지정해준다

 

  그 후 각각 로그인해서 게임에 로그인하고, 설정 - 시작그룹 에서 원하는 페이지를 등록해준다

  별도로 "로그인 유지" 같은 옵션이 있다면 체크해준다

  브라우저를 실행했을때 시작화면으로 원하는 계정의 게임화면이 뜨면 성공이다

성공 화면

  

 

2. 자동실행 파일 만들기

 

  이제 저 브라우저들이 자동으로 실행되게 하면 매일매일 로그인보상을 타먹을수 있다

 

  새 txt파일을 만들어서

@Echo off
start "g1" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue1"
start "g2" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue2"
start "g3" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue3"
start "g4" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue4"

  이렇게 설정한 --user-data-dir대로 실행되도록 한다

  (같은 chrome이라 그런지 start "title" 을 다르게 주지 않으면 하나밖에 실행되지 않았다)

 

  txt파일의 확장자를 bat로 바꾼 후 파일을 실행해보면

  이렇게 뜬다 (크롬 탭 위치는 이전에 종료했던 위치/크기로 뜨니, 원하는 순서/위치로 조정하면 된다)

 

 

3. 자동종료하기

  

  로그인보상 받었으면 이제 볼일 없으니 자동으로 종료되게 하면 된다

 

  chrome탭을 구분하는 방법을 찾아봤는데, 이름으로 구분하는 방법이 있다

 

start "g1" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue"
start "g2" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue2"
start "g3" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue3"
start "g4" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\\\\chrome\\\\granblue4"

timeout 4

taskkill /FI "WINDOWTITLE eq Granblue Fantasy - Chrome"

  아래의 taskkill 한줄 추가해주면 모든 Granblue Fantasy 라는 이름의 탭이 한번에 종료되게 된다

  네트워크 지연/에러 가능성을 생각해 실행-종료 사이에 4초간 여유를 주었다

 

 

4. 자동실행 등록하기

 

  이제 bat 파일을 매일 PC를 켤 때마다 자동으로 실행되게 하면 된다

 

  시작프로그램 경로는 다음과 같다

C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

 

  

  해당 폴더에 bat파일을 넣으면 작업관리자 - 시작프로그램 목록에 뜨고, 매번 PC 시작할때 실행된다

 

 

5. 추가 - 접속 우회 설정

 

  평소에 게임할때 별 문제 없이 잘 되면 위 4번까지만 진행해도 된다

 

  아쉽게도 내 PC에서는 그냥은 게임이 되지 않는다... 인터넷 문제인지 지역락이라도 있는지...

 

  VPN을 키면 잘 작동하긴 하지만 VPN을 자동으로 실행하려면 다음 두가지 작업이 없어야한다

 

이런게 있으면 안된다

  1. VPN을 실행할 때 사용자 계정 컨트롤 확인창이 뜨면 안되고

  2. 프로그램 실행과 동시에 VPN이 작동해야한다

 

  2번 조건은 VPN프로그램을 잘 찾으면 되고, 1번 조건은 여러 해결법이 있는데,

  이렇게 계정 컨트롤 설정을 직접 수정하는 방식은 절대 하면 안된다

  (온갖 이상한 프로그램이 최소한의 방어막도 없이 들어온다)

 

  작업 스케줄러를 수정하는 방법도 있는데, 다음에 알아보자

 

 

  VPN 없이 위 조건들을 한번에 해결하는 방법으로 goodbyedpi를 사용하는 방법이 있다

 

  VPN처럼 암호화를 해버리는건 아니고 DPI 우회라고 하는데, 오히려 그 덕분에 좀 더 빠르고 가볍게 사용할수 있다

  사용법은 간단하다, 우선 아래 링크에 가서 최신버전을 다운받는다

 

Releases · ValdikSS/GoodbyeDPI

GoodbyeDPI—Passive Deep Packet Inspection blocker and Active DPI circumvention utility (for Windows) - ValdikSS/GoodbyeDPI

github.com

 

  zip파일 압축 해제시 service_install_russia_blacklist.cmd 파일이 존재한다

  해당 파일에 아래 내용을 복사-붙여넣기 후 실행해주면 된다

@ECHO OFF
PUSHD "%~dp0"
set _arch=x86_64
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (set _arch=x86_64)
IF DEFINED PROCESSOR_ARCHITEW6432 (set _arch=x86_64)

echo This script should be run with administrator privileges.
echo Right click - run as administrator.
echo Press any key if you're running it as administrator.
pause
sc stop "GoodbyeDPI"
sc delete "GoodbyeDPI"
sc create "GoodbyeDPI" binPath= "\"%CD%\%_arch%\goodbyedpi.exe\" -f 30 -k 30 -n -e 30 --dns-addr 1.1.1.1"" start= "auto"
sc description "GoodbyeDPI" "Passive Deep Packet Inspection blocker and Active DPI circumvention utility"
sc start "GoodbyeDPI"

POPD

 

  이제 PC가 실행될 때 마다 자동으로 백그라운드에 goodbyedpi가 실행되며, 문제 없이 게임에 접속할 수 있게 된다

1. PMD란?

  • Programming Mistake Detector
  • 미사용 변수, 명명규칙 위반, 중복코드 등을 탐지하는 정적 코드 분석 도구이다.

 

2. 설치하기

File - Settings - Plugins - Marketplace에서 PMD 검색 - Install 후 재시작

 

3. 실행하기

 

재시작 후 Tools - Run PMD - Pre Defined에서 All 선택하면 모든 항목에 대해 코드 분석을 시작한다

각 항목별 분석도 가능하다

 

내 코드는 쓰레기인가?

결과 화면

각 항목별로 몇개의 문제점이 있는지, 어디에 있는지 확인 가능하다

 

위 사진은 콘솔 출력 코드가 총 22개 존재한다는 뜻이다

 

File - Settings - PMD 메뉴에서 직접 RuleSet을 추가해서 사용할 수도 있다

[뱃지 제작 사이트]

 

Shields.io: Quality metadata badges for open source projects

Love Shields? Please consider donating to sustain our activitiesYour BadgeStaticUsing dash "-" separator/badge/ - - Dashes --→- DashUnderscores __→_ Underscore_ or Space  →  SpaceUsing query string parameters/static/v1?label= &message= &color= Colo

shields.io

 

증상 : 로컬 markdown 편집기 (Typora)에서는 뱃지가 정상적으로 출력되는데, github에 업로드하니 출력되지 않는 경우

 

좌 : Typora 화면    우 : Github 화면

 

해결 : URL에 특수문자가 포함되어 있어 제대로 실행하지 못해서 발생한 오류

 

https://img.shields.io/badge/spring%20boot-#4F5DC1.svg?&style=for-the-badge&logo=springboot&logoColor=white

https://img.shields.io/badge/spring%20boot-%234F5DC1.svg?&style=for-the-badge&logo=springboot&logoColor=white

위와 같이 커스텀 색 지정 중 #가 %23으로 변환되지 않았기 때문이었다.

+ Recent posts