리눅스에서 OWASP ZAP과 BurpSuite의 색상 바꾸기
아주 예전부터 Burp suite, ZAP의 색상을 바꿀 수 있으면 좋겠다는 생각을 했었습니다. 관련해서 양쪽 개발자분꼐 여쭤봤지만 동일하게 코드 수정을 매우 어렵다고 답변 들었습니다. (당연한 이야기…, 역시 자바란)
그러던 중 최근에 트위터로 재미있는 소식을 하나 접했는데요, 리눅스 창 관리자를 약간 이용하면 색상 변환이 가능합니다.
ZAP, Burp의 WM_CLASS 찾기
우선 바꿀 프로그램의 WM_CLASS를 찾습니다. xprop로 찾으면 편합니다. 명령어 입력 후 마우스로 포인팅해서 값을 얻어옵니다.
xprop | grep WM_CLASS
WM_CLASS(STRING) = "OWASP ZAP", "OWASP ZAP"
ZAProxy는 “OWASP ZAP”, Burp suite는 이미지와 같습니다.
compton 창 관리자를 이용하여 invert-color 하기
compton 창 관리자를 이용해 해당 WM_CLASS의 창인 경우 색상을 invert 해줍니다. 먼저 compton를 설치합니다.
apt-get install compton
--invert-color-include
옵션을 주면 다음 규칙 인자값에 맞는 창에 대해서만 invert-color 합니다.
(보통 어둡게 쓰는 경우 오히려 밝아지지만, Java Application의 기본 창 특성 상 밝기 떄문에 어두워집니다)
compton --invert-color-include 'class_g="OWASP ZAP"'
TroubleShotting(XFCE > XFWM4 사용중인 경우)
보통은… 여기서 바로 적용되겠지만, 저는 xfce에서 xfwm4 창 관리자를 쓰고 있기 떄문에 에러가 발생합니다.
compton --invert-color-include 'class_g="OWASP ZAP"'
다른 composite manager 가 동작중이라는 내용의 에러인데요, xfwm 동작 여부를 보면..
ps -aux | grep xfwm
hahwul 1009 0.7 0.2 195904 24492 ? S Jul09 0:06 xfwm4
root 4330 0.0 0.0 12980 1072 pts/0 S+ 00:01 0:00 grep xfwm
네 말그대로 동작중이여서 안된거 같습니다. 우선 기능을 내릴 수 있을지 옵션을 보면..
xfwm4 -h
Usage:
xfwm4 [OPTION…] [ARGUMENTS...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
--help-sm-client Show session management options
Application Options:
--daemon Fork to the background
--compositor=on|off|auto Set the compositor mode
--replace Replace the existing window manager
-V, --version Print version information and exit
--display=DISPLAY X display to use
--compositor
옵션으로 설정이 가능할듯 하네요. 우선 테스트를 위해 기능을 내려봅시다
xfwm4 --compositor=off
그리고 --replace
를 하는 순간..
xfwm4 --replace
xfwm4이 종료된게 아니기 떄문에 분명히 안될거라는 확신과 함께 설정 에러가 발생해서 xfwm4가 꺼졌습니다. 워인을 알았으니 아래와 같이 처리해주면 잘 반영됩니다.
pstree -p | grep xfwm4
kill -9 [xfwm4의 pid]
compton --invert-color-include 'class_g="OWASP ZAP"'
다만 xfce 기본 창 관리자의 장점들을 사용할 수 없기 때문에 xfwm4에 대해 좀 더 찾아봅니다.
--help-all
로 좀 더 상세히 보면,,
xfwm4 --help-all
Usage:
xfwm4 [OPTION…] [ARGUMENTS...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
--help-sm-client Show session management options
GTK+ Options
--class=CLASS Program class as used by the window manager
--name=NAME Program name as used by the window manager
--screen=SCREEN X screen to use
--sync Make X calls synchronous
--gtk-module=MODULES Load additional GTK+ modules
--g-fatal-warnings Make all warnings fatal
Session management options
--sm-client-id=ID Session management client ID
--sm-client-disable Disable session management
Application Options:
--daemon Fork to the background
--compositor=on|off|auto Set the compositor mode
--replace Replace the existing window manager
-V, --version Print version information and exit
--display=DISPLAY X display to use
오예, --class
, --name
옵션이 있네요.
라고 썼지만, 추가적인 삽질이 필요할 것 같네요. 마저 쓰다간 밤샐 느낌이기 때문에 적당히 마무리하고, 후속 포스팅을 올리도록 하겠습니다. 감사합니다 :)