zoukankan      html  css  js  c++  java
  • mac下自定义伪协议配置

    之前查了很多资料,最近也在挖掘研究这方面的漏洞.

    windows的很简单,在注册表配置就好了,但是mac os 是unix的,没有注册表这么一说。

    但是发现腾讯等配置了自定义等协议,例如:tencent://xxxxx,

    那么他们是怎么配置的,查了写资料,比较少。分享一下:

    mac应用程序安装的时候在安装软件有一个info.plist,可以在配置文件中配置CFBundleURLName.

    1. Use Script Editor to save this script as an Application Bundle (no startup screen):

    on open location localURL
        
        set oldDelims to AppleScript's text item delimiters
        set AppleScript's text item delimiters to "local://"
        set thePath to item 2 of the text items of localURL
        set AppleScript's text item delimiters to oldDelims
        
        tell application "System Events"
            open ((POSIX file thePath) as string)
        end tell
        
    end open location

    2.Use the method described here and here to set CFBundleSignature to LOCL and add

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>Local File</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>local</string>
            </array>
        </dict>
    </array>
    <key>NSUIElement</key>
    <true/>

    to the application bundle's Info.plist file, then change the PkgInfo file to contain APPLLOCL
    3.Use the More Internet preference pane to add 'local' as a new protocol and choose the new application as the handler.
    4.Make hyperlinks in the form local:///path/to/your/local/folder. Clicking those links should then open that file or folder.

    更详细的可以到苹果开发文档参考:

    https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

    以我的电脑为例:

     例如在链接中<a href="ssh://xxx">click me</a>那么就会唤iTerm程序来执行ssh

     关于伪协议,其中有很多好玩的东西,大家可以自己挖掘。

    参考:

    http://hublog.hubmed.org/archives/001154.html

    https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

    https://code.i-harness.com/zh-CN/q/7321d

  • 相关阅读:
    头文件#ifndef #define #endif使用
    Django框架【form组件】
    数据库【mysql】之pymysql
    数据库【mysql篇】典型的一些练习题目
    Python开发【socket篇】解决粘包
    Python开发【内置模块篇】os模块
    Python开发【内置模块篇】日志模块
    Python开发【内置模块篇】configparser
    Python开发【内置模块篇】collections
    Python开发【内置模块篇】datetime
  • 原文地址:https://www.cnblogs.com/sevck/p/8534624.html
Copyright © 2011-2022 走看看