[發明專利]函數的執行方法、裝置、設備及存儲介質在審
| 申請號: | 202010843800.5 | 申請日: | 2020-08-20 |
| 公開(公告)號: | CN112035278A | 公開(公告)日: | 2020-12-04 |
| 發明(設計)人: | 高少東 | 申請(專利權)人: | 北京字節跳動網絡技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京遠智匯知識產權代理有限公司 11659 | 代理人: | 范坤坤 |
| 地址: | 100041 北京市石景山區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 函數 執行 方法 裝置 設備 存儲 介質 | ||
本公開實施例公開了一種函數的執行方法、裝置、設備及存儲介質。該方法包括:目標對象在接收到標準hook消息時,將標準hook消息發送給消息處理方法;目標對象通過消息處理方法,將標準hook消息轉發至主動方法或與主動方法匹配的被動方法,以觸發執行主動方法或被動方法;其中,目標對象與消息處理方法、主動方法和被動方法唯一關聯,屬于同一類的不同對象針對同一被動方法對應不同的主動方法,且主動方法執行完成后,生成并發送與被動方法匹配的標準hook消息。本公開實施例可以對指定方法實現hook,并能限制hook方法的作用范圍。
技術領域
本公開實施例涉及計算機技術領域,尤其涉及一種函數的執行方法、裝置、設備及存儲介質。
背景技術
隨著計算機技術的發展,鉤子(hook)技術在日常iOS開發過程中使用的越來越頻繁。現有技術中,對一個方法實現hook時,需要在該方法對應的類的分類中定義一個與被hook方法的方法簽名相同的新方法,然后用新方法替換被hook的方法。
發明人在實現本發明的過程中,發現現有技術存在如下缺陷:如果同一個類的兩個分類中分別定義了同一個方法的hook方法,即兩個hook方法同名,則這兩個hook方法之間會相互覆蓋,只有最后一個被編譯的hook方法會生效;并且,這種hook方式是對全局生效的,即被hook方法對應的類的所有實例都會被影響。
公開內容
本公開實施例提供一種函數的執行方法、裝置、設備及存儲介質,可以對指定方法實現hook并能限制hook方法的作用范圍。
主動方面,本公開實施例提供了一種函數的執行方法,包括:
目標對象在接收到標準hook消息時,將標準hook消息發送給消息處理方法;
目標對象通過消息處理方法,將標準hook消息轉發至主動方法或與主動方法匹配的被動方法,以觸發執行主動方法或被動方法;
其中,目標對象與消息處理方法、主動方法和被動方法唯一關聯,屬于同一類的不同對象針對同一被動方法對應不同的主動方法,且主動方法執行完成后,生成并發送與被動方法匹配的標準hook消息。
進一步的,目標對象與目標臨時對象唯一關聯,目標臨時對象的方法列表中包括:第一方法選擇器、第二方法選擇器以及第三方法選擇器;屬于同一類的不同對象針對同一被動方法對應相同的第一方法選擇器的名稱,且第一方法選擇器的名稱與標準hook消息相匹配;
第一方法選擇器中的指針為空指針,空指針用于觸發消息轉發操作,消息轉發操作與消息處理方法關聯;第二方法選擇器中的指針指向主動方法,第三方法選擇器中的指針指向被動方法。
進一步的,目標對象將標準hook消息發送給消息處理方法,包括:
目標對象根據標準hook消息,在目標臨時對象中定位與標準hook消息匹配的第一方法選擇器,并將標準hook消息發送至第一方法選擇器;
目標對象通過第一方法選擇器確定指針為空指針時,觸發消息轉發操作,并將標準hook消息發送至消息處理方法進行消息轉發。
進一步的,目標對象通過消息處理方法,將標準hook消息轉發至主動方法或與主動方法匹配的被動方法,包括:
目標對象通過消息處理方法,在標準hook消息中識別方法標識;
目標對象通過消息處理方法,根據方法標識的標識類型,將標準hook消息轉發至主動方法或與主動方法匹配的被動方法。
進一步的,目標對象通過消息處理方法,根據方法標識的標識類型,將標準hook消息轉發至主動方法,包括:
目標對象通過消息處理方法,在確定方法標識屬于外部消息時,將標準hook消息轉發至第二方法選擇器;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京字節跳動網絡技術有限公司,未經北京字節跳動網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://m.brncl.com/pat/books/202010843800.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種環保機械生產用管材截斷裝置
- 下一篇:一種家用照明燈的觸片生產設備





