2016-07-16 3 views
0

저는 Greasemonkey를 완전히 처음 접했고, 제가하고 싶은 것을 찾고 꽤 많이 찾았습니다. 이 브라우저 기반 Unity FPS에 대한 whitehat 해킹을하고 있는데, 웹 페이지가 일반 게임 클라이언트 대신 게임 파일의 직접 연결된 편집 복사본을 포함하도록하려고합니다. 특히, this 페이지의 소스 335 행에서 UnityObject.embedUnity() 함수의 두 번째 특성에서 URL을 변경하려고합니다. 나는 Greasemonkey가 그걸로가는 길이라고 생각한다.Greasemonkey가 웹 페이지의 unityObject 소스를 대체합니다.

소스 (ctrl + u)를 보는 것은 javascript 함수에서이 소스를 보여 주지만 dev 도구에서 inspector를 사용하면 embed 태그에 함수의 결과가 표시됩니다. 내 Greasemonkey 스크립트에 대해 설명하려고하는 것이 확실하지 않습니다.

var tags = document.getElementsByTagName('embed'); tags[0].src = tags[0].src.replace('http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5', 'http://google.com')

어떻게 것 : 나는 아직 파일을 직접 링크되어 있지 않지만,이 스크립트를 (작동하지 않았다) 시도 (구글은 텍스트 교체가 작동하는지 확인하기 위해 단지 자리 표시 자입니다) 이 작업을 수행하는 스크립트를 작성하겠습니다.

답변

0

embed 요소는 브라우저의 구문 분석시 자동으로 실행되는 페이지의 <script> 태그 안에있는 Unity Player js 코드에 의해 삽입됩니다.

파이어 폭스는 여전히 실행하기 전에 해당 스크립트를 변경하는 데 사용할 수있는 beforescriptexecute 이벤트가 있습니다

document.addEventListener("beforescriptexecute", replacePlayer, true); 
function replacePlayer(e) { 
    var lookFor = 'http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5'; 
    var replaceWith = 'http://google.com'; 
    if (e.target.text.indexOf(lookFor) > 0) { 
     e.target.text = e.target.text.replace(lookFor, replaceWith); 
    } 
} 
관련 문제