kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4565 · 좋아요 3

Tempermonkey 설치 후 아래 스크립트 추가 하기...


설명은 다른사람들이 알아서 할것 같아서 그냥 싸지르고 튀겠습니다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

// ==UserScript==

// @name         Base64 AutoDecoder

// @namespace    http://tampermonkey.net/

// @version      1.0

// @description  디코딩 가능한 base64 문자열을 링크로 변환합니다.

// @author       Zeliper

// @match        https://kone.gg/s/imya/*

// @include      https://kone.gg/

// @grant        unsafeWindow

// ==/UserScript==

unsafeWindow.on = true ;

( function () {

'use strict' ;

// Base64 문자열을 URL로 디코딩하는 함수

function  decodeBase64ToURL(str) {

try  {

const  decoded =  atob(str); // Base64 디코딩

// URL이 http 또는 https로 시작하는지 확인

if  ( / ^https?:\ / \ //.test(decoded)) {

return  decoded; // 유효한 URL이면 반환

            }

        } catch  (e) {

return null ; // 디코딩 오류가 나면 null 반환

        }

return null ;

    }

// 텍스트에서 Base64 문자열을 찾아 링크로 변환하는 함수

function  replaceBase64WithLink(node) {

console .log( "Node : " , node);

const  base64Regex = / \b[a - zA - Z0 - 9 + / = ]{ 20 ,}\b / g; // Base64 문자열을 찾는 정규식

let  text =  node.textContent; // 텍스트 노드의 텍스트 내용

let  match;

const parent =  node.parentNode;

let  lastIndex = 0 ;

// 텍스트에서 Base64 문자열을 찾아서 처리

while  ((match =  base64Regex.exec(text)) ! = = null ) {

const  before =  text.slice(lastIndex, match.index);

const  base64Str =  match[ 0 ];

const  decodedURL =  decodeBase64ToURL(base64Str);

if  (decodedURL) {

console .log(decodedURL);

// 유효한 URL이 디코딩되었으면 링크로 변환

const  a = document .createElement( 'a' );

                a.href =  decodedURL;

                a.textContent =  decodedURL;

                a.target = '_blank' ;

//node.textContent = ''; // <-- 나중에 문제 없으면 이거 넣어서 해도 될듯

                node.appendChild( document .createElement( 'br' ));

                node.appendChild(a);

            } else {

console .log( "Failed" );

            }

            lastIndex =  base64Regex.lastIndex;

        }

    }

// .prose-container의 Shadow DOM을 탐색하여 텍스트 변환

function  walkShadowRoot(shadowRoot) {

const  textNodes =  shadowRoot.querySelectorAll( ':not(div)' );

// 모든 텍스트 노드를 확인

        textNodes.forEach(node = >  {

            replaceBase64WithLink(node);

        });

    }

// .prose-container가 로드된 후 Shadow DOM 탐색

function  processShadowRoot() {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            walkShadowRoot(container.shadowRoot); // Shadow DOM 처리

        }

    }

// 페이지가 완전히 로드된 후 실행

function  onLoad() {

        processShadowRoot();

    }

// MutationObserver를 사용하여 .prose-container의 Shadow DOM 로드를 감지

const  observer = new  MutationObserver(() = >  {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            processShadowRoot();

        }

    });

// .prose-container가 추가될 때까지 대기

    observer.observe( document .body, { childList: true , subtree: true  });

// 페이지 로딩이 완료되면 바로 실행

if  ( document .readyState = = = 'complete' ) {

        onLoad();

    }

})();

cs

3
댓글 6개
댓글 쓰기
25.05.25
복붙하니까 eslint : no-multi-spaces - multiple spaces found before 이런 오류 뜨는 데 왜 그런지 암?
주황색 세모에 ! 있는거 왼쪽 line표시에 나오는거면 eslint 문법 체크인데 무시해도됨. 실제 동작 하는지 페이지 새로고침 해서 base64문자 밑에 링크 생성만 되면 동작하고 있는거임
25.05.26 (04.02)

삭제된 댓글입니다.

25.05.27 (04.02)

삭제된 댓글입니다.

25.11.15
안되는데..
0 / 500
[요청] 방과후 술래잡기
질문&요청
blitzcrank
25.12.13 3416 -3
[요청] 여고생 나나미와 마리나의 야한 아르바이트성활
질문&요청
qwwqasd
25.12.12 4088 2
[복구요청] summer clover 여름빛 클로버 복구요청합니다.
질문&요청
hunt1515
25.12.12 3272 0
보이스코믹 요청! 천년을 살아온 여신 대행자
질문&요청
통달
25.12.12 3675 0
11월말에 사용한비밀번호가뭔가요?한달국룰이라고 적혀있는데 다틀리네요
질문&요청
sagacious200
25.12.11 5543 -24
ㅅ기사 ㄹ카 세이브 요청ㅜ
질문&요청
a15597
25.12.10 2345 -1
[복구요청] 로나 0.1.0.0.2
질문&요청
dfdfdfdfdf001
25.12.10 5309 -1
[복구요청]오크 소프트(orcsoft) 아내는 오늘밤도 빼앗긴다~남편이 모르는 청초계 거유처의 과거와 현재~
질문&요청
sksmsqortn1298
25.12.09 6157 0
15년 쯤에 봤던 써큐버스 쯔꾸르야겜 거 찾아요
질문&요청
handle-holder
25.12.08 2837 -3
[복구요청] Abyss of Pleasure
질문&요청
방울도둑
25.12.08 3764 0
[복구요청] 어서와요! 음란 엘프의 숲으로
질문&요청
양계장을습격한족제비
25.12.07 3362 1
RJ012159270. 한밤중의 응석 번역 어떻게 하나요?
질문&요청
dkdnfjd
25.12.07 2175 -2
여름으로의 방주 3 복구 가능할까요
질문&요청
13241234
25.12.04 10496 0
빼앗기지 않을 어머니(eroit)요청합니다
질문&요청
bligg
25.12.04 5350 -2
[복구요청] (고어 주의) 죽어가는 그대, 이세계에 울리는 단말마 & 죽어가는 그대, 관에서 싹트는 증오 번역판
질문&요청
asdaba1213
25.12.03 4503 0
아마카노 시리즈 전부와 첫사랑 마스터업 요청드립니다
질문&요청
gan4574
25.12.03 4359 -5
여동생 모노크롬 판타지 한패 요청드립니다..
질문&요청
001111
25.12.02 2841 0
[복구요청]아마카노3
질문&요청
truasakr54132
25.12.02 2545 -2
[복구요청] 언더 더 위치 : 시작 Under The Witch Beginnings
질문&요청
aap07
25.12.01 2491 0
Miel게임 요청 드립니다
질문&요청
jounsoung5397
25.12.01 8909 0
[복구요청]시크릿러브 애프터스토리
질문&요청
jellybeen
25.11.30 1769 -2
[복구요청] 러브러브! 마이버디:크로스 한글 RJ269568 ラブラブ!マイばでぃ:クロス
질문&요청
wooron20
25.11.30 2327 5
[복구 요청?] 비명 -지하실에 갇힌 11명
질문&요청
nunuor
25.11.30 2851 3
[복구요청]몇번째인지 모를 처음 뵙겠습니다
질문&요청
agfasdf
25.11.30 2125 2
[baketsu purin]˝네가 차버린 내향적 여자 지금은 팔로워 100만 명이 넘는 거유 그라비아 아이돌이 됐어, 알겠지? w˝ 2 ―여친이 있는 나를 통통하고 거대한 가슴의 몸매로 유혹해 와서 역(逆)
동인
will1250
25.11.29 12867 30
[baketsu purin]네가 차버린 내향적 여자 지금은 팔로워 100만 명이 넘는 거유 그라비아 아이돌이 됐어, 알겠지 w ―여친이 있는 나를 통통하고 거대한 가슴의 몸매로 유혹해 와서 역(逆) NTR하는 이야기
동인
will1250
25.11.29 12265 29
[복구요청] 워너비→크리에이터즈 2
질문&요청
asdlkjfw
25.11.28 9079 -1
(번역요청)[Alp, Etc] ユニオバ合同誌 | UO Joint Magazine
동인
will1250
25.11.28 5376 2
[복구요청!] 밀팩 4종 ' 어플, 서큐버스, 메이드, 바니 ' 요청
질문&요청
통달
25.11.28 2232 0
[복구요청] 워너비→크리에이터즈
질문&요청
asdlkjfw
25.11.28 1213 -1