kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4566 · 좋아요 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
조이플 구동겜 뭐있음?
일반
dkslrspadjqyek
25.11.15 638 0
(복구요청) 포로의 불꽃 ~음욕의 불꽃으로 가득한 지하 투기장~ 요청드립니다..
질문&요청
clueeeeee
25.11.14 1607 0
(복구요청) ✨ 미소녀 폭유 🔥 젖탱이 물건처럼 다뤄지는 모음 ❤️
질문&요청
HIHA
25.11.14 2908 -10
진짜로 서브 하나를 깔딱깔딱도 아니고 확인사살까지 마치고 떠난거였네
일반
가리랑
25.11.13 3060 1
게임 하나만 찾아줄 수 있으신가요??
질문&요청
pahh1034
25.11.12 3209 0
히로몬slg 복구요청합니다.
질문&요청
호두
25.11.12 1216 0
(복구요청) 아트리에 사쿠라 시리즈 복구 요청합니다
질문&요청
1212232442
25.11.12 3566 0
소장의욕망증 시리즈 요청합니다
질문&요청
19174418
25.11.11 3951 0
「복구요청」인공학원 2 복구 요청합니다!
질문&요청
hyc-k
25.11.11 1511 0
(요청)엘리스 소프트-모녀란관 ,하하란만
질문&요청
pluton84
25.11.11 1672 0
(요청) Lune - 거유 엘프 모녀 최면
질문&요청
prisksjejej
25.11.10 2175 1
미만경 1 ロゴ.ogv 오류 해결
일반
yu-rion
25.11.10 1670 2
(복구요청) 나아간 앞에 있는 것
질문&요청
Ghost
25.11.10 1093 0
교간의 포로들, 대출아내 마유미 시리즈
질문&요청
abcdefg1
25.11.10 1195 1
(복구요청) 기번) 마망즈 Autonoe 서클 8개 + 그 외 1개 ++ Autonoe 서클 요청 4종 추가
질문&요청
코네해적단
25.11.09 1267 0
[요청] 라셰와 제물의 마을
질문&요청
cayoco
25.11.09 1143 -1
비밀노출 v1.09
번역
alswns
25.11.09 10612 11
(복구요청)비밀 노출
질문&요청
DIPCOIN
25.11.09 2601 -2
(복구요청) 미소녀만화경
질문&요청
yu-rion
25.11.09 2056 0
미소녀 만화경 1 실행오류 구조요청
질문&요청
yu-rion
25.11.09 2158 -1
(복구요청) 망상이 멈추지 않는 변태 숙녀 하루나씨
질문&요청
보테배 베네타
25.11.09 1601 1
[복구요청]팬인 소녀에게 코스프레를 시켜
질문&요청
ritmus62
25.11.08 3446 -2
(복구요청) 여동생 모노크롬 / 판타지
질문&요청
posudo
25.11.08 1636 6
네코파라 시리즈
번역
도파민
25.11.08 12636 36
사족
번역
도파민
25.11.08 10106 27
후유카라 쿠루루
번역
도파민
25.11.08 10904 31
네코파라 시리즈 복구 가능한가요?
질문&요청
satsumi
25.11.08 2594 -4
[복구요청] RJ344530 크리스와 유락의 거리
질문&요청
dieksknau
25.11.06 2674 0
토메후레 1,W,2
번역
도파민
25.11.06 10342 32
[복구요청]토메후레 1,2 복구 부탁드려요
질문&요청
angkalz
25.11.06 1555 -1