1. 程式人生 > >Xcode外掛Injection實現程式碼注入

Xcode外掛Injection實現程式碼注入

Injection是johnno開發的一個Xcode外掛,允許我們將程式碼實現更快注入到模擬器執行的程式或macOS程式。原先可以通過Alcatraz安裝到Xcode中,不過現在是獨立的App了。可以在 http://johnholdsworth.com/Injection.app.zip 下載安裝。啟動後會出現在螢幕頂部的工具欄中,如下圖所示。


要檢測是否有效,可以在某個類裡面新增injected方法,然後打個斷點。在程式碼修改後儲存,然後注入,如果進入這個斷點,則說明安裝成功,同時控制器會有相應資訊輸出,如下圖所示。


Injection使用AppleScript來和Xcode進行通訊,以確定當前的檔案與工程,然後將程式碼注入到模擬器,再載入新程式碼,並將新程式碼替換原來的程式碼。其效果如圖3所示。


Injection程式還包含一個Xprobe瀏覽器,用於檢視程式的記憶體。可以選擇圖1中的Load Xprobe選單項,彈出的視窗中顯示了當前時間點的物件例項,我們可以在這做一些有意思的事情,如下圖所示。


Injection工程原始碼: https://github.com/johnno1962/injectionforxcode

文件:https://johntmcintosh.com/blog/2016/10/03/code-injection-ios

相關推薦

Xcode外掛Injection實現程式碼注入

Injection是johnno開發的一個Xcode外掛,允許我們將程式碼實現更快注入到模擬器執行的程式或macOS程式。原先可以通過Alcatraz安裝到Xcode中,不過現在是獨立的App了。可以在 http://johnholdsworth.com/Injectio

瀏覽器未安裝flash外掛提示實現程式碼

在開發中使用到jquery.uploadify.js,這個外掛有使用到flash檔案,以前舊版本的谷歌瀏覽器會自動載入flash,升級之後就不會載入了;每次要新增資料,才發現數據填完了,附件卻上傳不了,然後開始了複雜的找啟動flash的地方,啟用之後頁面又要重新載入,剛提交的

示例:Android註解實現程式碼注入

前面的部落格Android中的註解中, 我們簡單描述了Android中註解的含義和用途。 除了基本的用法外,註解還可以幫助我們實現程式碼注入,達到類似IoC的效果。 本篇部落格以一個簡單的例子,記錄一下相關的內容。 通常的情況下,我們初始化介面的程式

LANs.py:一款可以實現程式碼注入,無線滲透和WiFi使用者監控的強大工具

LANs.py功能簡介 1.      自動尋找當前網路中最為活躍的WLAN使用者,並對其中的一名使用者實施監控,然後向該使用者所訪問的Web頁面注入任意HTML或JavaScript程式碼; 2.      干擾附近的WiFi網路,干擾範圍取決於無線網絡卡的效

基於shatter tookit外掛實現場景模型切割(附外掛及核心程式碼

前言 專案需求就是,把當前視野內的模型摳下來,然後資料匯出供後邊的模組使用,是一個三維模擬相關的專案。 專案結構比較簡單,主要分三個部分: 1.獲取視野內不需要切割的模型列表,挨個克隆並寫入結果集陣列 2.獲取視野邊界線上的需要切割的模型列表,按順序克隆切割並把視野內的部分寫入結果集陣列

Android外掛化完美實現程式碼資源載入及原理講解 附可執行demo

*本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 。 我們通過前4篇的分解,分別將外掛化設計到的知識點全部梳理了一遍,如果沒有看過的,建議先看前面4篇 6. 外掛化資源的使用及動態載入 附demo 好了上面介紹了之

一隻快速生成程式碼Xcode外掛FastStub

外掛github地址,這款外掛的靈感來源於Android Studio,在AS當中按 cmd+N 可以撥出generate code選單,快速生成一系列模板程式碼。比如自動解析出super class當中還沒有被override的方法,比如自動生成Constructor,並選擇要傳入的引數等。 外

XAlign:用於程式碼對齊的Xcode外掛

XAlign 是一個 Xcode 的實用外掛,用於對齊規範程式碼。除了外掛作者 qfish 提供的 3 種對齊格式,還可以自定義任意你想要的格式。 示例 qfish 分享的 3 張示例圖( Gif ),如下: 1. 按首個 = 對齊 2. 按巨集定義群組對齊

Intellij idea安裝JRebel外掛 實現程式碼的熱部署

安裝破解版地址:http://blog.csdn.net/younger_cheung/article/details/44174661 java程式碼不像php程式碼,php用的web伺服器是apache,當php程式碼修改後,不需要重新啟動apache伺服器,程式碼可以

Asp.net MVC中如何實現依賴注入(DI)(二)

昨天說了一下Castle與Autofac如何在MVC中的使用,今天再來簡單說一下Spring.Net框架在MVC中如何依賴注入的。 官網:http://www.springframework.net/ 專案結構圖:   首先,我們要在專案中新增Spring.Net的類庫引用,我們可以在N

畢達哥拉斯樹實現程式碼

畢達哥拉斯樹實現程式碼(帶顏色單擊變化)遞迴加勾股實現(canvas作圖) <!DOCTYPE html> <html lang="en" style="height: 99%"> <head> <meta charset="UTF-8">

mybatis-generator-maven-plugin外掛自動生成程式碼的配置方法

1. 第一步,在pom檔案中引入如下外掛   //專案示例程式碼: <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-g

使用pep8 vim外掛規範Python程式碼

安裝PEP8   1. sudo apt-get install pep8 2. 到http://www.vim.org/scripts/script.php?script_id=2914下載最新版本的外掛,放到~/.vim/ftplugin/python/目

DLL注入:用CreateRemoteThread實現DLL注入

實驗環境:WINXP VS2010 功能:注入到notepad.exe程式,並從網上下一個檔案 實驗程式: (一)myhack.dll,即要注入的dll程式 #include "windows.h" #include "tchar.h" #pragma comment(lib,"url

基於內容的推薦演算法的實現程式碼例項

本次例項需要三個資料檔案 分別為節目及其所屬標籤型別的01矩陣;使用者--節目評分矩陣;使用者收視了的節目--標籤01矩陣。 可以直接下載下來使用https://download.csdn.net/download/qq_38281438/10757266 具體程式碼如下: #

vue輪播圖報錯 Uncaught RangeError: Maximum call stack size exceeded 附完整輪播圖實現程式碼

Vue初學者,寫專案實現輪播圖時報錯且頁面初始化後不會自動輪播。 設定的計時器時長是6000,但報錯是幾乎沒有停歇的報錯。 檢查核心程式碼,發現 錯誤一:這裡導致輪播圖初始化不輪播 mounted的方法寫在了methods裡面,將mounted的方法挪出,解決頁面初始化輪播圖不

頁面loading效果實現程式碼

有些頁面載入起來比較慢,為了加強使用者體驗效果,所以一般都會做一個頁面載入等待的提示,頁面載入完成後消失。 下面提供一個可以拿來即用的方案。 <!DOCTYPE html> <html lang="en"> <head> <meta

獲取C#中方法的執行時間及其程式碼注入

  在優化C#程式碼或對比某些API的效率時,通常需要測試某個方法的執行時間,可以通過DateTime來統計指定方法的執行時間,也可以使用名稱空間System.Diagnostics中封裝了高精度計時器QueryPerformanceCounter方法的Stopwatch類來統計指定方法的執行時間:   1

剪下波變換實現程式碼(MATLAB+python)

       【時間】2018.10.18              【題目】剪下波變換實現程式碼(MATLAB+python) 概述 GitHub中剪下波變換的python實現

php根據時間顯示剛剛,幾分鐘前,幾小時前的實現程式碼

釋出時間距現在的時間 function tranTime($time) { $rtime = date("m-d H:i", $time); $htime = date("H:i", $time); $tim