Next Generation Browser-based Process Memory Analyser.
All data is bundled in one binary.
Place your PC and iphone in the same network.
Place memory-server and Entitlements.plist in /usr/bin.
Connect to the iphone via ssh.
cd /usr/bin
ldid -SEntitlements.plist memory-server
./memory-server
The httpserver starts at port 3030
.
Set up the same way as FridaGadget to force loading of libmemory_server.dylib.
Connect to the network from Browser as usual.
Log output is written to NSLog.
Connect to memory-server from a browser on your PC.
http://{iPhone's ip}:3030/index.html
The following top page will be displayed.
![img1](https://private-user-images.githubusercontent.com/96031346/318277648-01d846b5-df98-4925-9b3c-b63d66b10d89.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEwNDUzMzAsIm5iZiI6MTcyMTA0NTAzMCwicGF0aCI6Ii85NjAzMTM0Ni8zMTgyNzc2NDgtMDFkODQ2YjUtZGY5OC00OTI1LTliM2MtYjYzZDY2YjEwZDg5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE1VDEyMDM1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA4YjliMDU5NGU5OTNlN2FlNmNhN2M4OWJlYWZkMjk5YjQzNGZjMGJhYTQ1NWU1NDIzNTIxODhiMjYzMGRmMzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.yacZDeK8736bnoOYSp1IhVz62otJ0F59uMm0rlm1_vU)
Enter the ip of the iPhone in the 「IP Address」 field and press the 「Connect」 button.
Next, select a process and press the 「Open Process」 button.
![img2](https://private-user-images.githubusercontent.com/96031346/320213113-4aa7bf02-c97a-4e1b-97da-8778e6017550.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEwNDUzMzAsIm5iZiI6MTcyMTA0NTAzMCwicGF0aCI6Ii85NjAzMTM0Ni8zMjAyMTMxMTMtNGFhN2JmMDItYzk3YS00ZTFiLTk3ZGEtODc3OGU2MDE3NTUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE1VDEyMDM1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmYmJlMjg1MTgxYTQ4YzlkZWMxNDQyNjUzYWNiZDJlMDYwODEyNTEyYzg4NWY3ZGQ0Njg1ZjA2Y2ZmMzdkZjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bhOZGaGLlrlJXM74CJFRMJ27WLCL0xTlP48x3X_qo5s)
![img3](https://private-user-images.githubusercontent.com/96031346/320213202-f230d850-646f-4fd9-8ee4-4265f2e20e1a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEwNDUzMzAsIm5iZiI6MTcyMTA0NTAzMCwicGF0aCI6Ii85NjAzMTM0Ni8zMjAyMTMyMDItZjIzMGQ4NTAtNjQ2Zi00ZmQ5LThlZTQtNDI2NWYyZTIwZTFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE1VDEyMDM1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc1NDFhNjlkOTQ1MGRjYjViMmYzNzA3ZGRjMTg0YTc4NDI4YTA4ZDQ4NzViOWY4ZTc1MmQyZWQ2NmZiZmY2NWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5AlMGOrqkx4WK9i-briBIZsXvYyfl97uFt5yDprOZ5Y)
Network connection is identical to iphone.
cd /data/local/tmp
su
./memory-server
Set up the same way as FridaGadget to force loading of libmemory_server.so.
This method allows the android device to operate on its own.
![img4](https://private-user-images.githubusercontent.com/96031346/322521569-0a629a2c-6401-4f2c-b67a-bf8b9ad3d682.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEwNDUzMzAsIm5iZiI6MTcyMTA0NTAzMCwicGF0aCI6Ii85NjAzMTM0Ni8zMjI1MjE1NjktMGE2MjlhMmMtNjQwMS00ZjJjLWI2N2EtYmY4YjlhZDNkNjgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE1VDEyMDM1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJhM2JmNGQ2Y2JlYTUyMjM4MmRjZTFjNDVkOWZlNzFlMDkzYjc1Yjg2NWVkODE3NDY4Y2JjMzhhYjgwZTJkMjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2ZTiK7sAFYpQFwopohzLufgvTnQ3YNJocjh1KAh3b2w)
To build the project using GitHub Actions, follow these steps:
-
Fork this repo
-
Go to the "Actions" tab in your forked repository.
-
In the left sidebar, click on the "Build" workflow.
-
Above the list of workflow runs, click on "Run workflow".
-
In the dialog box that appears:
- Select the branch you want to run the workflow on (usually "main").
- Enter a version tag for this build (e.g., "v1.0.0").
-
Click "Run workflow" to start the build process.
-
The workflow will start running, and you can monitor its progress in the Actions tab.
-
Once the workflow completes successfully, you can download the built artifacts:
- Go to the completed workflow run.
- Scroll down to the "Artifacts" section.
- Click on the artifact names to download:
memory-server-ios-arm64-[version]
memory-server-android-arm64-[version]
Note: Make sure you have the necessary permissions in your forked repository to run workflows and access artifacts.
For more information, please visit Wiki