mirror of
https://github.com/frida/frida-core.git
synced 2026-11-09 10:09:38 -10:00
Compare commits
No files matched your search
@@ -0,0 +1 @@
|
||||
/.github/workflows/ @oleavr
|
||||
@@ -0,0 +1,39 @@
|
||||
name: Set up Apple codesigning certificates
|
||||
description: Set up certificates needed for codesigning when building for Apple OSes
|
||||
inputs:
|
||||
certificates-p12:
|
||||
required: true
|
||||
description: The certificates to use for codesigning, as a base64-encoded .p12
|
||||
certificates-password:
|
||||
required: true
|
||||
description: The password for the .p12
|
||||
keychain-password:
|
||||
required: true
|
||||
description: The keychain password to use
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Install the Apple certificates
|
||||
env:
|
||||
CERTIFICATES_P12: ${{ inputs.certificates-p12 }}
|
||||
CERTIFICATES_PASSWORD: ${{ inputs.certificates-password }}
|
||||
KEYCHAIN_PASSWORD: ${{ inputs.keychain-password }}
|
||||
run: |
|
||||
CERTIFICATE_PATH=$RUNNER_TEMP/apple-certificates.p12
|
||||
KEYCHAIN_PATH=$RUNNER_TEMP/frida-signing.keychain-db
|
||||
echo -n "$CERTIFICATES_P12" | base64 -d -o $CERTIFICATE_PATH
|
||||
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
||||
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
|
||||
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
||||
security import $CERTIFICATE_PATH -P "$CERTIFICATES_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
|
||||
security list-keychain -d user -s $KEYCHAIN_PATH
|
||||
rm $CERTIFICATE_PATH
|
||||
(
|
||||
MACOS_CERTID=$(security find-identity -v -p codesigning | grep "Developer ID Application: " | awk '{ print $2 }')
|
||||
IOS_CERTID=$(security find-identity -v -p codesigning | grep "Apple Development: " | awk '{ print $2 }')
|
||||
echo MACOS_CERTID=$MACOS_CERTID
|
||||
echo IOS_CERTID=$IOS_CERTID
|
||||
echo WATCHOS_CERTID=$IOS_CERTID
|
||||
echo TVOS_CERTID=$IOS_CERTID
|
||||
) >> $GITHUB_ENV
|
||||
shell: bash
|
||||
@@ -0,0 +1,230 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
FRIDA_CORE_OPTIONS: '--with-devkits=core --enable-tests'
|
||||
|
||||
jobs:
|
||||
native:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { id: windows-x86_64, runner: '"windows-latest"' }
|
||||
- { id: windows-x86, runner: '"windows-latest"' }
|
||||
- { id: macos-x86_64, runner: '"macos-11"' }
|
||||
- { id: macos-arm64, runner: '"macos-latest"' }
|
||||
- { id: linux-x86_64, runner: '"ubuntu-latest"' }
|
||||
- { id: linux-x86, runner: '"ubuntu-latest"' }
|
||||
- { id: freebsd-arm64, runner: '["self-hosted", "freebsd", "arm64"]' }
|
||||
fail-fast: false
|
||||
runs-on: ${{ fromJSON(matrix.runner) }}
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up Apple certificates
|
||||
if: ${{ startsWith(matrix.id, 'macos-') }}
|
||||
uses: ./.github/actions/setup-apple-certificates
|
||||
with:
|
||||
certificates-p12: ${{ secrets.APPLE_CERTIFICATES_P12 }}
|
||||
certificates-password: ${{ secrets.APPLE_CERTIFICATES_PASSWORD }}
|
||||
keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
|
||||
- name: Relax macOS security policy to avoid prompts
|
||||
if: ${{ startsWith(matrix.id, 'macos-') }}
|
||||
run: sudo security authorizationdb write system.privilege.taskport allow
|
||||
- name: Install gcc-multilib
|
||||
if: matrix.id == 'linux-x86'
|
||||
run: sudo apt-get install gcc-multilib lib32stdc++-11-dev
|
||||
- name: Build
|
||||
if: ${{ startsWith(matrix.id, 'windows-') }}
|
||||
run: |
|
||||
.\configure ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
.\make
|
||||
- name: Build
|
||||
if: ${{ !startsWith(matrix.id, 'windows-') && matrix.id != 'linux-x86' }}
|
||||
run: |
|
||||
./configure ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Build
|
||||
if: matrix.id == 'linux-x86'
|
||||
run: |
|
||||
CC="gcc -m32" CXX="g++ -m32" STRIP="strip" \
|
||||
./configure --build=linux-x86 --host=linux-x86 ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Upload devkit
|
||||
if: ${{ !startsWith(matrix.id, 'linux-') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: core-devkit-${{ matrix.id }}
|
||||
path: build/src/devkit/
|
||||
- name: Test
|
||||
if: matrix.id != 'macos-arm64'
|
||||
run: make test
|
||||
|
||||
cross:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { id: windows-x86_64-mingw, opts: '--host=x86_64-w64-mingw32 --without-prebuilds=sdk:host', pkg: g++-mingw-w64-x86-64 }
|
||||
- { id: windows-x86-mingw, opts: '--host=i686-w64-mingw32 --without-prebuilds=sdk:host', pkg: g++-mingw-w64-i686 }
|
||||
- { id: linux-mips, opts: '--host=mips-linux-gnu', pkg: g++-mips-linux-gnu }
|
||||
- { id: linux-mipsel, opts: '--host=mipsel-linux-gnu', pkg: g++-mipsel-linux-gnu }
|
||||
- { id: linux-mips64, opts: '--host=mips64-linux-gnuabi64', pkg: g++-mips64-linux-gnuabi64 }
|
||||
- { id: linux-mips64el, opts: '--host=mips64el-linux-gnuabi64', pkg: g++-mips64el-linux-gnuabi64 }
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Install toolchain
|
||||
run: sudo apt-get install ${{ matrix.pkg }}
|
||||
- name: Build
|
||||
run: |
|
||||
./configure ${{ matrix.opts }} ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Upload devkit
|
||||
if: ${{ !startsWith(matrix.id, 'linux-') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: core-devkit-${{ matrix.id }}
|
||||
path: build/src/devkit/
|
||||
|
||||
manylinux:
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [x86, x86_64, x86_64-musl, armhf, arm64, arm64-musl, mips, mipsel, mips64, mips64el]
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/frida/x-tools-linux-${{ matrix.arch }}:latest
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Build
|
||||
run: |
|
||||
./configure --host=$XTOOLS_HOST ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Upload devkit
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: core-devkit-linux-${{ matrix.arch }}
|
||||
path: build/src/devkit/
|
||||
- name: Test
|
||||
if: matrix.arch == 'x86' || matrix.arch == 'x86_64'
|
||||
run: make test
|
||||
|
||||
mobile:
|
||||
strategy:
|
||||
matrix:
|
||||
id:
|
||||
- ios-arm64
|
||||
- android-x86
|
||||
- android-x86_64
|
||||
- android-arm
|
||||
- android-arm64
|
||||
fail-fast: false
|
||||
runs-on: ${{ startsWith(matrix.id, 'ios-') && 'macos-latest' || 'ubuntu-latest' }}
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up Apple certificates
|
||||
if: startsWith(matrix.id, 'ios-')
|
||||
uses: ./.github/actions/setup-apple-certificates
|
||||
with:
|
||||
certificates-p12: ${{ secrets.APPLE_CERTIFICATES_P12 }}
|
||||
certificates-password: ${{ secrets.APPLE_CERTIFICATES_PASSWORD }}
|
||||
keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
|
||||
- name: Build
|
||||
run: |
|
||||
./configure --host=${{ matrix.id }} ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Upload devkit
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: core-devkit-${{ matrix.id }}
|
||||
path: build/src/devkit/
|
||||
- name: Package tests
|
||||
run: |
|
||||
mkdir -p /tmp/pkg
|
||||
cd build
|
||||
case ${{ matrix.id }} in
|
||||
ios-*)
|
||||
shlibext=.dylib
|
||||
;;
|
||||
android-*)
|
||||
shlibext=.so
|
||||
;;
|
||||
esac
|
||||
cp -a tests/frida-tests tests/labrats lib/agent/frida-agent$shlibext /tmp/pkg/
|
||||
case ${{ matrix.id }} in
|
||||
ios-*)
|
||||
cp -a lib/gadget/frida-gadget.dylib ../tests/test-gadget-standalone.js /tmp/pkg/
|
||||
;;
|
||||
esac
|
||||
tar -C /tmp/pkg -czf /tmp/runner.tar.gz .
|
||||
- name: Test on Corellium iOS device
|
||||
if: matrix.id == 'ios-arm64'
|
||||
uses: frida/corellium-action@v4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
gateway: corellium.frida.re
|
||||
device: ios-12.5.7-arm64
|
||||
upload: /tmp/runner.tar.gz
|
||||
run: |
|
||||
cd /usr/local
|
||||
rm -rf opt/frida
|
||||
mkdir -p opt/frida
|
||||
cd opt/frida
|
||||
tar xf $ASSET_PATH
|
||||
./frida-tests
|
||||
- name: Test on Corellium Android device
|
||||
if: matrix.id == 'android-arm64'
|
||||
uses: frida/corellium-action@v4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
gateway: corellium.frida.re
|
||||
device: android-8.1.0-arm64
|
||||
upload: /tmp/runner.tar.gz
|
||||
run: |
|
||||
cd /data/local/tmp
|
||||
tar xf $ASSET_PATH
|
||||
TMPDIR=/data/local/tmp ./frida-tests
|
||||
|
||||
qnx-armeabi:
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/frida/qnx-tools:latest
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Build
|
||||
run: |
|
||||
CFLAGS="--sysroot=$QNX_TARGET/armle-v7" \
|
||||
./configure --host=arm-unknown-nto-qnx6.5.0eabi ${{ env.FRIDA_CORE_OPTIONS }}
|
||||
make
|
||||
- name: Upload devkit
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: core-devkit-qnx-armeabi
|
||||
path: build/src/devkit/
|
||||
- name: Test
|
||||
run: |
|
||||
mkdir -p /tmp/pkg
|
||||
cd build
|
||||
cp -a tests/frida-tests tests/labrats lib/agent/frida-agent.so /tmp/pkg/
|
||||
tar -C /tmp/pkg -cf /tmp/runner.tar .
|
||||
/opt/sabrelite/run.sh /tmp/runner.tar /opt/frida/frida-tests
|
||||
+3
-4
@@ -1,7 +1,5 @@
|
||||
*.user
|
||||
/lib/xnu/build/
|
||||
/lib/xnu/FridaKernelAgent.xcodeproj/project.xcworkspace/xcuserdata/
|
||||
/lib/xnu/FridaKernelAgent.xcodeproj/xcuserdata/
|
||||
/build/
|
||||
/deps/
|
||||
/src/barebone/helpers/memory-scanner/target/
|
||||
/src/barebone/helpers/target/
|
||||
/src/barebone/node_modules/
|
||||
@@ -10,3 +8,4 @@
|
||||
/src/fruity/helpers/build/
|
||||
/src/linux/helpers/build/
|
||||
/src/linux/helpers/ext/
|
||||
/subprojects/*
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "releng"]
|
||||
path = releng
|
||||
url = https://github.com/frida/releng.git
|
||||
@@ -0,0 +1,6 @@
|
||||
all: .DEFAULT
|
||||
|
||||
.DEFAULT:
|
||||
@gmake ${.MAKEFLAGS} ${.TARGETS}
|
||||
|
||||
.PHONY: all
|
||||
@@ -0,0 +1,16 @@
|
||||
PYTHON ?= $(shell which python3 >/dev/null && echo python3 || echo python)
|
||||
|
||||
all $(MAKECMDGOALS):
|
||||
@$(PYTHON) \
|
||||
-c "import sys; sys.path.insert(0, sys.argv[1]); from releng.meson_make import main; main()" \
|
||||
"$(shell pwd)" \
|
||||
./build \
|
||||
$(MAKECMDGOALS)
|
||||
|
||||
git-submodules:
|
||||
@if [ ! -f releng/meson/meson.py ]; then \
|
||||
git submodule update --init --recursive --depth 1; \
|
||||
fi
|
||||
-include git-submodules
|
||||
|
||||
.PHONY: all $(MAKECMDGOALS)
|
||||
+619
@@ -0,0 +1,619 @@
|
||||
from __future__ import annotations
|
||||
import argparse
|
||||
import base64
|
||||
from collections import OrderedDict
|
||||
from dataclasses import dataclass, field
|
||||
import itertools
|
||||
import os
|
||||
from pathlib import Path
|
||||
import pickle
|
||||
import platform
|
||||
import shlex
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
from typing import Any, Literal, Mapping, Optional, Sequence
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
NINJA = os.environ.get("NINJA", "ninja")
|
||||
|
||||
|
||||
Role = Literal["project", "subproject"]
|
||||
|
||||
|
||||
def main(argv):
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers()
|
||||
|
||||
command = subparsers.add_parser("setup", help="setup everything needed to compile")
|
||||
command.add_argument("role", help="project vs subproject", choices=["project", "subproject"])
|
||||
command.add_argument("builddir", help="build directory", type=Path)
|
||||
command.add_argument("top_builddir", help="top build directory", type=Path)
|
||||
command.add_argument("frida_version", help="the Frida version")
|
||||
command.add_argument("host_os", help="operating system binaries are being built for")
|
||||
command.add_argument("host_arch", help="architecture binaries are being built for")
|
||||
command.add_argument("host_config", help="configuration binaries are being built for")
|
||||
command.add_argument("compat", help="support for targets with a different architecture",
|
||||
type=parse_compat_option_value)
|
||||
command.add_argument("assets", help="whether assets are embedded vs installed and loaded at runtime")
|
||||
command.add_argument("components", help="which components will be built",
|
||||
type=parse_array_option_value)
|
||||
command.add_argument("compilers", help="compiler command arrays", nargs="+")
|
||||
command.set_defaults(func=lambda args: setup(args.role,
|
||||
args.builddir,
|
||||
args.top_builddir,
|
||||
args.frida_version,
|
||||
args.host_os,
|
||||
args.host_arch,
|
||||
args.host_config if args.host_config else None,
|
||||
args.compat,
|
||||
args.assets,
|
||||
args.components,
|
||||
parse_compilers(args.compilers)))
|
||||
|
||||
command = subparsers.add_parser("compile", help="compile compatibility assets")
|
||||
command.add_argument("privdir", help="directory to store intermediate files", type=Path)
|
||||
command.add_argument("state", help="opaque state from the setup step")
|
||||
command.set_defaults(func=lambda args: compile(args.privdir, pickle.loads(base64.b64decode(args.state))))
|
||||
|
||||
args = parser.parse_args()
|
||||
if "func" in args:
|
||||
try:
|
||||
args.func(args)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(e, file=sys.stderr)
|
||||
print("Output:\n\t| " + "\n\t| ".join(e.output.strip().split("\n")), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
parser.print_usage(file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def parse_compat_option_value(v: str) -> set[str]:
|
||||
vals = parse_array_option_value(v)
|
||||
|
||||
if len(vals) > 1:
|
||||
for choice in {"auto", "disabled"}:
|
||||
if choice in vals:
|
||||
raise argparse.ArgumentTypeError(f"the compat '{choice}' choice cannot be combined with other choices")
|
||||
|
||||
return vals
|
||||
|
||||
|
||||
def parse_array_option_value(v: str) -> set[str]:
|
||||
return {v.strip() for v in v.split(",")}
|
||||
|
||||
|
||||
def parse_compilers(compilers: list[str]) -> Compilers:
|
||||
cc = pop_cmd_array_arg(compilers)
|
||||
cpp = pop_cmd_array_arg(compilers)
|
||||
return Compilers(cc, cpp)
|
||||
|
||||
|
||||
def pop_cmd_array_arg(args: list[str]) -> list[str]:
|
||||
result: list[str] = []
|
||||
first = args.pop(0)
|
||||
assert first == ">>>"
|
||||
while True:
|
||||
cur = args.pop(0)
|
||||
if cur == "<<<":
|
||||
break
|
||||
result.append(cur)
|
||||
if len(result) == 1 and not result[0]:
|
||||
return None
|
||||
return result
|
||||
|
||||
|
||||
def setup(role: Role,
|
||||
builddir: Path,
|
||||
top_builddir: Path,
|
||||
frida_version: str,
|
||||
host_os: str,
|
||||
host_arch: str,
|
||||
host_config: Optional[str],
|
||||
compat: set[str],
|
||||
assets: str,
|
||||
components: set[str],
|
||||
compilers: Compilers):
|
||||
try:
|
||||
outputs: Mapping[str, Sequence[Output]] = OrderedDict()
|
||||
|
||||
outputs[OutputGroup(arch=None)] = [Output("arch_support_bundle", "arch-support.bundle", Path("compat"), "")]
|
||||
|
||||
releng_location = query_releng_location(role)
|
||||
ensure_submodules_checked_out(releng_location)
|
||||
configure_import_path(releng_location)
|
||||
|
||||
auto_detect = "auto" in compat
|
||||
if auto_detect:
|
||||
if host_os in {"windows", "macos", "linux", "ios", "tvos", "android"}:
|
||||
summary = f"enabled by default for {host_os}-{host_arch}"
|
||||
compat = {"native", "emulated"}
|
||||
else:
|
||||
summary = f"disabled by default for {host_os}-{host_arch}"
|
||||
compat = set()
|
||||
elif "disabled" in compat:
|
||||
summary = "disabled by user"
|
||||
compat = set()
|
||||
else:
|
||||
summary = "enabled by user"
|
||||
|
||||
if "native" in compat:
|
||||
have_toolchain = True
|
||||
other_triplet: Optional[str] = None
|
||||
extra_environ: dict[str, str] = {}
|
||||
|
||||
if host_os == "windows" and host_arch == "x86_64" and host_config == "mingw":
|
||||
other_triplet = "i686-w64-mingw32"
|
||||
have_toolchain = shutil.which(other_triplet + "-gcc") is not None
|
||||
elif host_os == "linux" and host_arch == "x86_64" and host_config is None:
|
||||
other_triplet = "i686-linux-gnu"
|
||||
have_toolchain = shutil.which(other_triplet + "-gcc") is not None
|
||||
if not have_toolchain:
|
||||
with (tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", suffix=".c") as probe_c,
|
||||
tempfile.NamedTemporaryFile(delete=False) as probe_executable):
|
||||
try:
|
||||
probe_c.write("int main (void) { return 0; }")
|
||||
probe_c.flush()
|
||||
p = subprocess.run(compilers.cc + ["-m32", probe_c.name, "-o", probe_executable.name],
|
||||
capture_output=True)
|
||||
if p.returncode == 0:
|
||||
extra_environ["CC"] = shlex.join(compilers.cc + ["-m32"])
|
||||
extra_environ["CXX"] = shlex.join(compilers.cpp + ["-m32"])
|
||||
have_toolchain = True
|
||||
finally:
|
||||
try:
|
||||
os.unlink(probe_executable.name)
|
||||
except:
|
||||
pass
|
||||
|
||||
if not have_toolchain:
|
||||
if not auto_detect:
|
||||
raise ToolchainNotFoundError(f"unable to locate toolchain for {other_triplet}")
|
||||
summary = "disabled due to missing toolchain for {other_triplet}"
|
||||
|
||||
if host_os == "windows" and host_arch == "x86_64" and have_toolchain:
|
||||
group = OutputGroup("x86", other_triplet, extra_environ)
|
||||
outputs[group] = [
|
||||
Output(identifier="helper_legacy",
|
||||
name=HELPER_FILE_WINDOWS.name,
|
||||
file=HELPER_FILE_WINDOWS,
|
||||
target=HELPER_TARGET),
|
||||
Output(identifier="agent_legacy",
|
||||
name=AGENT_FILE_WINDOWS.name,
|
||||
file=AGENT_FILE_WINDOWS,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
if "gadget" in components:
|
||||
outputs[group] += [
|
||||
Output(identifier="gadget_legacy",
|
||||
name=GADGET_FILE_WINDOWS.name,
|
||||
file=GADGET_FILE_WINDOWS,
|
||||
target=GADGET_TARGET),
|
||||
]
|
||||
|
||||
if host_os in {"macos", "ios"} and host_arch in {"arm64e", "arm64"} and host_config != "simulator":
|
||||
if host_arch == "arm64e":
|
||||
other_arch = "arm64"
|
||||
kind = "legacy"
|
||||
else:
|
||||
other_arch = "arm64e"
|
||||
kind = "modern"
|
||||
group = OutputGroup(other_arch)
|
||||
outputs[group] = [
|
||||
Output(identifier=f"helper_{kind}",
|
||||
name=f"frida-helper-{other_arch}",
|
||||
file=HELPER_FILE_UNIX,
|
||||
target=HELPER_TARGET),
|
||||
Output(identifier=f"agent_{kind}",
|
||||
name=f"frida-agent-{other_arch}.dylib",
|
||||
file=AGENT_FILE_DARWIN,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
if "gadget" in components:
|
||||
outputs[group] += [
|
||||
Output(identifier=f"gadget_{kind}",
|
||||
name=f"frida-gadget-{other_arch}.dylib",
|
||||
file=GADGET_FILE_DARWIN,
|
||||
target=GADGET_TARGET),
|
||||
]
|
||||
if "server" in components and assets == "installed":
|
||||
outputs[group] += [
|
||||
Output(identifier=f"server_{kind}",
|
||||
name=f"frida-server-{other_arch}",
|
||||
file=SERVER_FILE_UNIX,
|
||||
target=SERVER_TARGET),
|
||||
]
|
||||
|
||||
if host_os == "linux" and host_arch == "x86_64" and have_toolchain:
|
||||
group = OutputGroup("x86", other_triplet, extra_environ)
|
||||
outputs[group] = [
|
||||
Output(identifier="helper_legacy",
|
||||
name=HELPER_FILE_UNIX.name,
|
||||
file=HELPER_FILE_UNIX,
|
||||
target=HELPER_TARGET),
|
||||
Output(identifier="agent_legacy",
|
||||
name=AGENT_FILE_ELF.name,
|
||||
file=AGENT_FILE_ELF,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
if "gadget" in components:
|
||||
outputs[group] += [
|
||||
Output(identifier="gadget_legacy",
|
||||
name=GADGET_FILE_ELF.name,
|
||||
file=GADGET_FILE_ELF,
|
||||
target=GADGET_TARGET),
|
||||
]
|
||||
|
||||
if host_os == "android" and host_arch in {"arm64", "x86_64"}:
|
||||
group = OutputGroup("arm" if host_arch == "arm64" else "x86")
|
||||
outputs[group] = [
|
||||
Output(identifier="helper_legacy",
|
||||
name=HELPER_FILE_UNIX.name,
|
||||
file=HELPER_FILE_UNIX,
|
||||
target=HELPER_TARGET),
|
||||
Output(identifier="agent_legacy",
|
||||
name=AGENT_FILE_ELF.name,
|
||||
file=AGENT_FILE_ELF,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
if "gadget" in components:
|
||||
outputs[group] += [
|
||||
Output(identifier="gadget_legacy",
|
||||
name=GADGET_FILE_ELF.name,
|
||||
file=GADGET_FILE_ELF,
|
||||
target=GADGET_TARGET),
|
||||
]
|
||||
|
||||
if "emulated" in compat:
|
||||
if host_os == "android" and host_arch in {"x86_64", "x86"}:
|
||||
outputs[OutputGroup("arm")] = [
|
||||
Output(identifier="agent_emulated_legacy",
|
||||
name="frida-agent-arm.so",
|
||||
file=AGENT_FILE_ELF,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
if host_arch == "x86_64":
|
||||
outputs[OutputGroup("arm64")] = [
|
||||
Output(identifier="agent_emulated_modern",
|
||||
name="frida-agent-arm64.so",
|
||||
file=AGENT_FILE_ELF,
|
||||
target=AGENT_TARGET),
|
||||
]
|
||||
|
||||
raw_allowed_prebuilds = os.environ.get("FRIDA_ALLOWED_PREBUILDS")
|
||||
allowed_prebuilds = set(raw_allowed_prebuilds.split(",")) if raw_allowed_prebuilds is not None else None
|
||||
|
||||
state = State(role, builddir, top_builddir, frida_version, host_os, host_config, allowed_prebuilds, outputs)
|
||||
serialized_state = base64.b64encode(pickle.dumps(state)).decode('ascii')
|
||||
|
||||
variable_names, output_names = zip(*[(output.identifier, output.name) \
|
||||
for output in itertools.chain.from_iterable(outputs.values())])
|
||||
print("ok")
|
||||
print(summary)
|
||||
print(f"{','.join(variable_names)}")
|
||||
print(f"{','.join(output_names)}")
|
||||
print(DEPFILE_FILENAME)
|
||||
print(serialized_state)
|
||||
except Exception as e:
|
||||
print(f"error {e}")
|
||||
print("")
|
||||
print(traceback.format_exception(e))
|
||||
|
||||
|
||||
class ToolchainNotFoundError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@dataclass
|
||||
class Compilers:
|
||||
cc: list[str]
|
||||
cpp: list[str]
|
||||
|
||||
|
||||
@dataclass
|
||||
class State:
|
||||
role: Role
|
||||
builddir: Path
|
||||
top_builddir: Path
|
||||
frida_version: str
|
||||
host_os: str
|
||||
host_config: Optional[str]
|
||||
allowed_prebuilds: Optional[set[str]]
|
||||
outputs: Mapping[OutputGroup, Sequence[Output]]
|
||||
|
||||
|
||||
@dataclass
|
||||
class OutputGroup:
|
||||
arch: Optional[str]
|
||||
triplet: Optional[str] = None
|
||||
extra_environ: dict[str, str] = field(default_factory=dict)
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, OutputGroup):
|
||||
return other.arch == self.arch
|
||||
return False
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.arch)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Output:
|
||||
identifier: str
|
||||
name: str
|
||||
file: Path
|
||||
target: str
|
||||
|
||||
|
||||
def compile(privdir: Path, state: State):
|
||||
releng_location = query_releng_location(state.role)
|
||||
subprojects = detect_relevant_subprojects(releng_location)
|
||||
if state.role == "subproject":
|
||||
grab_subprojects_from_parent(subprojects, releng_location)
|
||||
configure_import_path(releng_location)
|
||||
|
||||
from releng.env import call_meson
|
||||
from releng.machine_spec import MachineSpec
|
||||
from releng.meson_configure import configure
|
||||
from releng.meson_make import make
|
||||
|
||||
def call_internal_meson(argv, *args, **kwargs):
|
||||
if "stdout" not in kwargs and "stderr" not in kwargs:
|
||||
silenced_kwargs = {
|
||||
**kwargs,
|
||||
"stdout": subprocess.PIPE,
|
||||
"stderr": subprocess.STDOUT,
|
||||
"encoding": "utf-8",
|
||||
}
|
||||
else:
|
||||
silenced_kwargs = kwargs
|
||||
return call_meson(argv, *args, **silenced_kwargs)
|
||||
|
||||
options: Optional[Sequence[str]] = None
|
||||
build_env = scrub_environment(os.environ)
|
||||
build_env["FRIDA_RELENG"] = str(releng_location)
|
||||
top_builddir = state.top_builddir
|
||||
depfile_lines = []
|
||||
for group, outputs in state.outputs.items():
|
||||
if group.arch is None:
|
||||
for o in outputs:
|
||||
(state.builddir / o.name).write_bytes(b"")
|
||||
continue
|
||||
|
||||
workdir = (privdir / group.arch).resolve()
|
||||
|
||||
if not (workdir / "build.ninja").exists():
|
||||
if options is None:
|
||||
options = load_meson_options(top_builddir, state.role, set(subprojects.keys()))
|
||||
version_opt = next((opt for opt in options if opt.startswith("-Dfrida_version=")), None)
|
||||
if version_opt is None:
|
||||
options += [f"-Dfrida_version={state.frida_version}"]
|
||||
|
||||
host_machine = MachineSpec(state.host_os, group.arch, state.host_config, group.triplet)
|
||||
|
||||
configure(sourcedir=REPO_ROOT,
|
||||
builddir=workdir,
|
||||
host_machine=host_machine,
|
||||
environ={**build_env, **group.extra_environ},
|
||||
allowed_prebuilds=state.allowed_prebuilds,
|
||||
extra_meson_options=[
|
||||
"-Dhelper_modern=",
|
||||
"-Dhelper_legacy=",
|
||||
"-Dagent_modern=",
|
||||
"-Dagent_legacy=",
|
||||
"-Dagent_emulated_modern=",
|
||||
"-Dagent_emulated_legacy=",
|
||||
*options,
|
||||
],
|
||||
call_meson=call_internal_meson,
|
||||
on_progress=lambda progress: None)
|
||||
|
||||
make(sourcedir=REPO_ROOT,
|
||||
builddir=workdir,
|
||||
targets=[o.target for o in outputs],
|
||||
environ=build_env,
|
||||
call_meson=call_internal_meson)
|
||||
|
||||
for o in outputs:
|
||||
shutil.copy(workdir / o.file, state.builddir / o.name)
|
||||
|
||||
output_relpath = (workdir / o.name).relative_to(top_builddir).as_posix()
|
||||
input_paths = shlex.split(subprocess.run([NINJA, "-t", "inputs", o.file],
|
||||
cwd=workdir,
|
||||
capture_output=True,
|
||||
encoding="utf-8",
|
||||
check=True).stdout)
|
||||
input_entries = []
|
||||
for raw_path in input_paths:
|
||||
path = Path(raw_path)
|
||||
if not path.is_absolute():
|
||||
path = Path(os.path.relpath(workdir / path, top_builddir))
|
||||
input_entries.append(quote(path.as_posix()))
|
||||
depfile_lines.append(f"{output_relpath}: {' '.join(input_entries)}")
|
||||
|
||||
(state.builddir / DEPFILE_FILENAME).write_text("\n".join(depfile_lines), encoding="utf-8")
|
||||
|
||||
|
||||
def load_meson_options(top_builddir: Path,
|
||||
role: Role,
|
||||
subprojects: set[str]) -> Sequence[str]:
|
||||
from mesonbuild import coredata
|
||||
|
||||
return [f"-D{adapt_key(k, role)}={v.value}" for k, v in coredata.load(top_builddir).options.items()
|
||||
if option_should_be_forwarded(k, v, role, subprojects)]
|
||||
|
||||
|
||||
def adapt_key(k: "OptionKey", role: Role) -> "OptionKey":
|
||||
if role == "subproject" and k.subproject == "frida-core":
|
||||
return k.as_root()
|
||||
return k
|
||||
|
||||
|
||||
def option_should_be_forwarded(k: "OptionKey",
|
||||
v: "coredata.UserOption[Any]",
|
||||
role: Role,
|
||||
subprojects: set[str]) -> bool:
|
||||
from mesonbuild import coredata
|
||||
|
||||
our_project_id = "frida-core" if role == "subproject" else ""
|
||||
is_for_us = k.subproject == our_project_id
|
||||
is_for_child = k.subproject in subprojects
|
||||
|
||||
if k.is_project():
|
||||
if is_for_us:
|
||||
tokens = k.name.split("_")
|
||||
if tokens[0] in {"helper", "agent"} and tokens[-1] in {"modern", "legacy"}:
|
||||
return False
|
||||
if k.subproject and k.machine is not coredata.MachineChoice.HOST:
|
||||
return False
|
||||
return is_for_us or is_for_child
|
||||
|
||||
if coredata.CoreData.is_per_machine_option(k):
|
||||
return k.machine is coredata.MachineChoice.BUILD
|
||||
|
||||
if k.is_builtin():
|
||||
if k.name in {"buildtype", "genvslite"}:
|
||||
return False
|
||||
if not str(v.value):
|
||||
return False
|
||||
|
||||
if k.module == "python":
|
||||
if k.name == "install_env" and v.value == "prefix":
|
||||
return False
|
||||
if not str(v.value):
|
||||
return False
|
||||
|
||||
return is_for_us or is_for_child
|
||||
|
||||
|
||||
def scrub_environment(env: Mapping[str, str]) -> Mapping[str, str]:
|
||||
from releng.env import TOOLCHAIN_ENVVARS
|
||||
clean_env = OrderedDict()
|
||||
envvars_to_avoid = {*TOOLCHAIN_ENVVARS, *MSVS_ENVVARS}
|
||||
for k, v in env.items():
|
||||
if k in envvars_to_avoid:
|
||||
continue
|
||||
if k.upper() == "PATH" and platform.system() == "Windows":
|
||||
v = scrub_windows_devenv_dirs_from_path(v, env)
|
||||
clean_env[k] = v
|
||||
return clean_env
|
||||
|
||||
|
||||
def scrub_windows_devenv_dirs_from_path(raw_path: str, env: Mapping[str, str]) -> str:
|
||||
raw_vcinstalldir = env.get("VCINSTALLDIR")
|
||||
if raw_vcinstalldir is None:
|
||||
return raw_path
|
||||
vcinstalldir = Path(raw_vcinstalldir)
|
||||
clean_entries = []
|
||||
for raw_entry in raw_path.split(";"):
|
||||
entry = Path(raw_entry)
|
||||
if entry.is_relative_to(vcinstalldir):
|
||||
continue
|
||||
if "WINDOWS KITS" in [p.upper() for p in entry.parts]:
|
||||
continue
|
||||
clean_entries.append(raw_entry)
|
||||
return ";".join(clean_entries)
|
||||
|
||||
|
||||
def quote(path: str) -> str:
|
||||
if " " not in path:
|
||||
return path
|
||||
return "\"" + path.replace ("\"", "\\\"") + "\""
|
||||
|
||||
|
||||
def query_releng_location(role: Role) -> Path:
|
||||
if role == "subproject":
|
||||
candidate = REPO_ROOT.parent.parent / "releng"
|
||||
if candidate.exists():
|
||||
return candidate
|
||||
return REPO_ROOT / "releng"
|
||||
|
||||
|
||||
def ensure_submodules_checked_out(releng_location: Path):
|
||||
if not (releng_location / "meson" / "meson.py").exists():
|
||||
subprocess.run(["git", "submodule", "update", "--init", "--recursive", "--depth", "1", "releng"],
|
||||
cwd=releng_location.parent,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT,
|
||||
encoding="utf-8",
|
||||
check=True)
|
||||
|
||||
|
||||
def detect_relevant_subprojects(releng_location: Path) -> dict[str, Path]:
|
||||
subprojects = detect_relevant_subprojects_in(REPO_ROOT, releng_location)
|
||||
gum_location = subprojects.get("frida-gum")
|
||||
if gum_location is not None:
|
||||
subprojects.update(detect_relevant_subprojects_in(gum_location, releng_location))
|
||||
return subprojects
|
||||
|
||||
|
||||
def detect_relevant_subprojects_in(repo_root: Path, releng_location: Path) -> dict[str, Path]:
|
||||
result = {}
|
||||
for f in (repo_root / "subprojects").glob("*.wrap"):
|
||||
name = f.stem
|
||||
location = releng_location.parent / "subprojects" / name
|
||||
if location.exists():
|
||||
result[name] = location
|
||||
return result
|
||||
|
||||
|
||||
def grab_subprojects_from_parent(subprojects: dict[str, Path], releng_location: Path):
|
||||
for name, location in subprojects.items():
|
||||
subp_here = REPO_ROOT / "subprojects" / name
|
||||
if subp_here.exists():
|
||||
continue
|
||||
|
||||
try:
|
||||
subp_here.symlink_to(location, target_is_directory=True)
|
||||
continue
|
||||
except OSError as e:
|
||||
if not getattr(e, "winerror") == 1314:
|
||||
raise e
|
||||
|
||||
subprocess.run(["git", "worktree", "add", subp_here],
|
||||
cwd=location,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT,
|
||||
encoding="utf-8",
|
||||
check=True)
|
||||
|
||||
|
||||
def configure_import_path(releng_location: Path):
|
||||
sys.path.insert(0, str(releng_location / "meson"))
|
||||
sys.path.insert(0, str(releng_location.parent))
|
||||
|
||||
|
||||
STATE_FILENAME = "state.dat"
|
||||
DEPFILE_FILENAME = "compat.deps"
|
||||
|
||||
HELPER_TARGET = "frida-helper"
|
||||
HELPER_FILE_WINDOWS = Path("src") / "frida-helper.exe"
|
||||
HELPER_FILE_UNIX = Path("src") / "frida-helper"
|
||||
|
||||
AGENT_TARGET = "frida-agent"
|
||||
AGENT_FILE_WINDOWS = Path("lib") / "agent" / "frida-agent.dll"
|
||||
AGENT_FILE_DARWIN = Path("lib") / "agent" / "frida-agent.dylib"
|
||||
AGENT_FILE_ELF = Path("lib") / "agent" / "frida-agent.so"
|
||||
|
||||
GADGET_TARGET = "frida-gadget"
|
||||
GADGET_FILE_WINDOWS = Path("lib") / "gadget" / "frida-gadget.dll"
|
||||
GADGET_FILE_DARWIN = Path("lib") / "gadget" / "frida-gadget.dylib"
|
||||
GADGET_FILE_ELF = Path("lib") / "gadget" / "frida-gadget.so"
|
||||
|
||||
SERVER_TARGET = "frida-server"
|
||||
SERVER_FILE_UNIX = Path("server") / "frida-server"
|
||||
|
||||
MSVS_ENVVARS = {
|
||||
"PLATFORM",
|
||||
"VCINSTALLDIR",
|
||||
"INCLUDE",
|
||||
"LIB",
|
||||
}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
||||
@@ -0,0 +1,119 @@
|
||||
helper_modern = get_option('helper_modern')
|
||||
helper_legacy = get_option('helper_legacy')
|
||||
helper_compat = ''
|
||||
helper_depends = []
|
||||
|
||||
agent_modern = get_option('agent_modern')
|
||||
agent_legacy = get_option('agent_legacy')
|
||||
agent_compat = ''
|
||||
agent_emulated_modern = get_option('agent_emulated_modern')
|
||||
agent_emulated_legacy = get_option('agent_emulated_legacy')
|
||||
agent_depends = []
|
||||
|
||||
gadget_compat = ''
|
||||
gadget_depends = []
|
||||
|
||||
server_compat = ''
|
||||
server_depends = []
|
||||
|
||||
no_overridden_compat_bits = \
|
||||
helper_modern == 'auto' and helper_legacy == 'auto' \
|
||||
and agent_modern == 'auto' and agent_legacy == 'auto' \
|
||||
and agent_emulated_modern == 'auto' and agent_emulated_legacy == 'auto'
|
||||
|
||||
if no_overridden_compat_bits
|
||||
build_py = [python, files('build.py')]
|
||||
|
||||
components = []
|
||||
if build_gadget
|
||||
components += 'gadget'
|
||||
endif
|
||||
if build_server
|
||||
components += 'server'
|
||||
endif
|
||||
|
||||
setup_result = run_command(build_py,
|
||||
'setup',
|
||||
meson.is_subproject() ? 'subproject' : 'project',
|
||||
meson.current_build_dir(),
|
||||
meson.global_build_root(),
|
||||
frida_version,
|
||||
host_os,
|
||||
host_abi,
|
||||
host_config,
|
||||
','.join(get_option('compat')),
|
||||
get_option('assets'),
|
||||
','.join(components),
|
||||
'--',
|
||||
'>>>', cc.cmd_array(), '<<<',
|
||||
'>>>', cpp.cmd_array(), '<<<',
|
||||
check: true
|
||||
)
|
||||
setup_output = setup_result.stdout().strip()
|
||||
if setup_output.startswith('error ')
|
||||
error('compat/build.py setup failed:', setup_output.substring(6))
|
||||
endif
|
||||
lines = setup_output.split('\n')
|
||||
assert(lines[0] == 'ok')
|
||||
compat_summary = lines[1]
|
||||
varnames = lines[2].split(',')
|
||||
outputs = lines[3].split(',')
|
||||
depfile = lines[4]
|
||||
state = lines[5]
|
||||
|
||||
if host_os_family == 'darwin'
|
||||
install = false
|
||||
install_dir = asset_dir
|
||||
else
|
||||
install = true
|
||||
install_dir = []
|
||||
foreach varname : varnames
|
||||
if varname != 'arch_support_bundle' and (get_option('assets') == 'installed' or varname.startswith('gadget_'))
|
||||
install_dir += varname.endswith('_modern') ? asset_dir_modern : asset_dir_legacy
|
||||
else
|
||||
install_dir += false
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
|
||||
arch_support = custom_target('arch-support',
|
||||
output: outputs,
|
||||
command: [
|
||||
build_py,
|
||||
'compile',
|
||||
'@PRIVATE_DIR@',
|
||||
state,
|
||||
],
|
||||
depfile: depfile,
|
||||
install: install,
|
||||
install_dir: install_dir,
|
||||
)
|
||||
|
||||
i = 0
|
||||
foreach output : arch_support.to_list()
|
||||
outpath = output.full_path()
|
||||
varname = varnames[i]
|
||||
|
||||
set_variable(varname, outpath)
|
||||
|
||||
if varname.startswith('helper_')
|
||||
helper_compat = outpath
|
||||
helper_depends += arch_support
|
||||
elif varname.startswith('agent_')
|
||||
agent_compat = outpath
|
||||
agent_depends += arch_support
|
||||
elif varname.startswith('gadget_')
|
||||
gadget_compat = outpath
|
||||
gadget_depends += arch_support
|
||||
elif varname.startswith('server_')
|
||||
server_compat = outpath
|
||||
server_depends += arch_support
|
||||
elif varname != 'arch_support_bundle'
|
||||
assert(false, f'unexpected variable name: @varname@')
|
||||
endif
|
||||
|
||||
i += 1
|
||||
endforeach
|
||||
else
|
||||
compat_summary = 'not available due to externally provided helper/agent assets'
|
||||
endif
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -z "$PYTHON" ] && PYTHON=$(which python3 >/dev/null && echo python3 || echo python)
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
srcroot=$(pwd)
|
||||
|
||||
if [ ! -f releng/meson/meson.py ]; then
|
||||
git submodule update --init --recursive --depth 1 || exit $?
|
||||
fi
|
||||
|
||||
cd - >/dev/null
|
||||
|
||||
exec "$PYTHON" \
|
||||
-c "import sys; sys.path.insert(0, sys.argv[1]); from releng.meson_configure import main; main()" \
|
||||
"$srcroot" \
|
||||
"$@"
|
||||
@@ -0,0 +1,22 @@
|
||||
@setlocal
|
||||
@echo off
|
||||
rem:: Based on: https://github.com/microsoft/terminal/issues/217#issuecomment-737594785
|
||||
goto :_start_
|
||||
|
||||
:set_real_dp0
|
||||
set dp0=%~dp0
|
||||
set "dp0=%dp0:~0,-1%"
|
||||
goto :eof
|
||||
|
||||
:_start_
|
||||
call :set_real_dp0
|
||||
|
||||
if not exist "%dp0%\releng\meson\meson.py" (
|
||||
pushd "%dp0%" & git submodule update --init --recursive --depth 1 & popd
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
)
|
||||
|
||||
endlocal & goto #_undefined_# 2>nul || title %COMSPEC% & python ^
|
||||
-c "import sys; sys.path.insert(0, sys.argv[1]); from releng.meson_configure import main; main()" ^
|
||||
"%dp0%" ^
|
||||
%*
|
||||
@@ -1,949 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B7DC9B02-A5FF-4AA1-B2A2-DC1653168D44}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)src;$(IntDir)data;$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<AdditionalDependencies>frida-base-32.lib;frida-pipe-32.lib;frida-helper-backend-32.lib;$(IntDir)data\frida-data-compiler-blob.obj;$(IntDir)data\frida-data-helper-blob.obj;$(IntDir)data\frida-data-agent-blob.obj;$(IntDir)data\frida-data-barebone-blob.obj;gum-32.lib;gumjs-inspector.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-helper-backend-32;$(IntDir)..\gum-32;$(IntDir)..\gumjs-inspector;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)src;$(IntDir)data;$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<AdditionalDependencies>frida-base-32.lib;frida-pipe-32.lib;frida-helper-backend-32.lib;$(IntDir)data\frida-data-compiler-blob.obj;$(IntDir)data\frida-data-helper-blob.obj;$(IntDir)data\frida-data-agent-blob.obj;$(IntDir)data\frida-data-barebone-blob.obj;gum-32.lib;gumjs-inspector.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-helper-backend-32;$(IntDir)..\gum-32;$(IntDir)..\gumjs-inspector;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)src;$(IntDir)data;$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<AdditionalDependencies>frida-base-64.lib;frida-pipe-64.lib;frida-helper-backend-64.lib;$(IntDir)data\frida-data-compiler-blob.obj;$(IntDir)data\frida-data-helper-blob.obj;$(IntDir)data\frida-data-agent-blob.obj;$(IntDir)data\frida-data-barebone-blob.obj;gum-64.lib;gumjs-inspector.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-helper-backend-64;$(IntDir)..\gum-64;$(IntDir)..\gumjs-inspector;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)src;$(IntDir)data;$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<AdditionalDependencies>frida-base-64.lib;frida-pipe-64.lib;frida-helper-backend-64.lib;$(IntDir)data\frida-data-compiler-blob.obj;$(IntDir)data\frida-data-helper-blob.obj;$(IntDir)data\frida-data-agent-blob.obj;$(IntDir)data\frida-data-barebone-blob.obj;gum-64.lib;gumjs-inspector.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-helper-backend-64;$(IntDir)..\gum-64;$(IntDir)..\gumjs-inspector;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="src\helper.resources">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Serializing Helper resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\windows.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Serializing Helper resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\windows.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Serializing Helper resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\windows.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Serializing Helper resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\windows.stamp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\helper.resources" -o "$(IntDir)data\frida-data-helper" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe" || exit 1
|
||||
REM. > "$(IntDir)data\windows.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\helper.resources" -o "$(IntDir)data\frida-data-helper" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe" || exit 1
|
||||
REM. > "$(IntDir)data\windows.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\helper.resources" -o "$(IntDir)data\frida-data-helper" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe" || exit 1
|
||||
REM. > "$(IntDir)data\windows.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\helper.resources" -o "$(IntDir)data\frida-data-helper" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-helper-32\frida-helper-32.exe" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-helper-64\frida-helper-64.exe" || exit 1
|
||||
REM. > "$(IntDir)data\windows.stamp"
|
||||
</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\agent.resources">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll;$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll;$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll;$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Serializing Agent resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\agent.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Serializing Agent resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\agent.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Serializing Agent resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\agent.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Serializing Agent resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\agent.stamp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\agent.resources" -o "$(IntDir)data\frida-data-agent" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll" || exit 1
|
||||
REM. > "$(IntDir)data\agent.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\agent.resources" -o "$(IntDir)data\frida-data-agent" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll" || exit 1
|
||||
REM. > "$(IntDir)data\agent.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\agent.resources" -o "$(IntDir)data\frida-data-agent" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll" || exit 1
|
||||
REM. > "$(IntDir)data\agent.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\agent.resources" -o "$(IntDir)data\frida-data-agent" "$(SolutionDir)build\tmp-windows\Win32-$(ConfigurationName)\frida-agent-32\frida-agent-32.dll" "$(SolutionDir)build\tmp-windows\x64-$(ConfigurationName)\frida-agent-64\frida-agent-64.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-32.dll" "$(SolutionDir)frida-gum\ext\dbghelp\dbghelp-64.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-32.dll" "$(SolutionDir)frida-gum\ext\symsrv\symsrv-64.dll" || exit 1
|
||||
REM. > "$(IntDir)data\agent.stamp"
|
||||
</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\frida.vala">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling vala code</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
mkdir "$(IntDir)src" 2>NUL
|
||||
"$(ValaCompiler)" src/frida.vala src/control-service.vala src/portal-service.vala src/host-session-service.vala src/agent-container.vala src/gdb.vala src/system.vala src/compiler/compiler.vala src/file-monitor.vala src/async-task.vala src/windows/windows-host-session.vala src/windows/winjector.vala src/windows/frida-helper-process.vala src/socket/socket-host-session.vala src/fruity/fruity-host-session.vala src/fruity/dtx.vala src/fruity/lockdown.vala src/fruity/installation-proxy.vala src/fruity/springboard-services.vala src/fruity/lldb.vala src/fruity/injector.vala src/fruity/usbmux.vala src/fruity/keyed-archive.vala src/fruity/plist.vala src/fruity/plist-service.vala src/droidy/droidy-host-session.vala src/droidy/droidy-client.vala src/droidy/jdwp.vala src/droidy/injector.vala src/droidy/axml.vala src/barebone/barebone-host-session.vala src/barebone/script.vala src/barebone/machine.vala src/barebone/allocator.vala src/barebone/callback.vala src/barebone/memory-scanner.vala src/barebone/interceptor.vala src/barebone/rust-module.vala src/barebone/arch-x86/machine.vala src/barebone/arch-x86_64/machine.vala src/barebone/arch-arm/machine.vala src/barebone/arch-arm64/machine.vala src/barebone/arch-unknown/machine.vala --ccode --directory=$(IntDir) --library=frida-core --gir=Frida-1.0.gir --header=$(IntDir)frida-core.h --symbols=$(IntDir)frida-core.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-pipe-32" --vapidir="$(IntDir)..\frida-pipe-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" --vapidir="$(IntDir)data" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gmodule-2.0 --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=libsoup-3.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-inspector-1.0 --pkg=libbrotlidec --pkg=quickjs --pkg=frida-base --pkg=frida-pipe --pkg=frida-helper-backend --pkg=frida-data-compiler --pkg=frida-data-helper --pkg=frida-data-agent --pkg=frida-data-barebone || exit 1
|
||||
mkdir "$(IntDir)api" 2>NUL
|
||||
$(Python) "$(ProjectDir)src\api\generate.py" 1.0 "$(IntDir)frida-core.vapi" "$(IntDir)frida-core.h" "$(IntDir)..\frida-base-32\frida-base.vapi" "$(IntDir)..\frida-base-32\frida-base.h" "$(IntDir)api"
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ValaCompiler);$(ProjectDir)src\control-service.vala;$(ProjectDir)src\portal-service.vala;$(ProjectDir)src\host-session-service.vala;$(ProjectDir)src\agent-container.vala;$(ProjectDir)src\gdb.vala;$(ProjectDir)src\system.vala;$(ProjectDir)src\compiler\compiler.vala;$(ProjectDir)src\file-monitor.vala;$(ProjectDir)src\async-task.vala;$(ProjectDir)src\windows\windows-host-session.vala;$(ProjectDir)src\windows\winjector.vala;$(ProjectDir)src\windows\frida-helper-process.vala;$(ProjectDir)src\socket\socket-host-session.vala;$(ProjectDir)src\fruity\fruity-host-session.vala;$(ProjectDir)src\fruity\dtx.vala;$(ProjectDir)src\fruity\lockdown.vala;$(ProjectDir)src\fruity\installation-proxy.vala;$(ProjectDir)src\fruity\springboard-services.vala;$(ProjectDir)src\fruity\lldb.vala;$(ProjectDir)src\fruity\injector.vala;$(ProjectDir)src\fruity\usbmux.vala;$(ProjectDir)src\fruity\keyed-archive.vala;$(ProjectDir)src\fruity\plist.vala;$(ProjectDir)src\fruity\plist-service.vala;$(ProjectDir)src\droidy\droidy-host-session.vala;$(ProjectDir)src\droidy\droidy-client.vala;$(ProjectDir)src\droidy\jdwp.vala;$(ProjectDir)src\droidy\injector.vala;$(ProjectDir)src\droidy\axml.vala;$(ProjectDir)src\barebone\barebone-host-session.vala;$(ProjectDir)src\barebone\script.vala;$(ProjectDir)src\barebone\machine.vala;$(ProjectDir)src\barebone\allocator.vala;$(ProjectDir)src\barebone\callback.vala;$(ProjectDir)src\barebone\memory-scanner.vala;$(ProjectDir)src\barebone\interceptor.vala;$(ProjectDir)src\barebone\rust-module.vala;$(ProjectDir)src\barebone\arch-x86\machine.vala;$(ProjectDir)src\barebone\arch-x86_64\machine.vala;$(ProjectDir)src\barebone\arch-arm\machine.vala;$(ProjectDir)src\barebone\arch-arm64\machine.vala;$(ProjectDir)src\barebone\arch-unknown\machine.vala;$(IntDir)data\compiler.stamp;$(IntDir)data\windows.stamp;$(IntDir)data\agent.stamp;$(IntDir)data\barebone.stamp;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling vala code</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
mkdir "$(IntDir)src" 2>NUL
|
||||
"$(ValaCompiler)" src/frida.vala src/control-service.vala src/portal-service.vala src/host-session-service.vala src/agent-container.vala src/gdb.vala src/system.vala src/compiler/compiler.vala src/file-monitor.vala src/async-task.vala src/windows/windows-host-session.vala src/windows/winjector.vala src/windows/frida-helper-process.vala src/socket/socket-host-session.vala src/fruity/fruity-host-session.vala src/fruity/dtx.vala src/fruity/lockdown.vala src/fruity/installation-proxy.vala src/fruity/springboard-services.vala src/fruity/lldb.vala src/fruity/injector.vala src/fruity/usbmux.vala src/fruity/keyed-archive.vala src/fruity/plist.vala src/fruity/plist-service.vala src/droidy/droidy-host-session.vala src/droidy/droidy-client.vala src/droidy/jdwp.vala src/droidy/injector.vala src/droidy/axml.vala src/barebone/barebone-host-session.vala src/barebone/script.vala src/barebone/machine.vala src/barebone/allocator.vala src/barebone/callback.vala src/barebone/memory-scanner.vala src/barebone/interceptor.vala src/barebone/rust-module.vala src/barebone/arch-x86/machine.vala src/barebone/arch-x86_64/machine.vala src/barebone/arch-arm/machine.vala src/barebone/arch-arm64/machine.vala src/barebone/arch-unknown/machine.vala --ccode --directory=$(IntDir) --library=frida-core --gir=Frida-1.0.gir --header=$(IntDir)frida-core.h --symbols=$(IntDir)frida-core.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-pipe-32" --vapidir="$(IntDir)..\frida-pipe-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" --vapidir="$(IntDir)data" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gmodule-2.0 --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=libsoup-3.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-inspector-1.0 --pkg=libbrotlidec --pkg=quickjs --pkg=frida-base --pkg=frida-pipe --pkg=frida-helper-backend --pkg=frida-data-compiler --pkg=frida-data-helper --pkg=frida-data-agent --pkg=frida-data-barebone || exit 1
|
||||
mkdir "$(IntDir)api" 2>NUL
|
||||
$(Python) "$(ProjectDir)src\api\generate.py" 1.0 "$(IntDir)frida-core.vapi" "$(IntDir)frida-core.h" "$(IntDir)..\frida-base-64\frida-base.vapi" "$(IntDir)..\frida-base-64\frida-base.h" "$(IntDir)api"
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ValaCompiler);$(ProjectDir)src\control-service.vala;$(ProjectDir)src\portal-service.vala;$(ProjectDir)src\host-session-service.vala;$(ProjectDir)src\agent-container.vala;$(ProjectDir)src\gdb.vala;$(ProjectDir)src\system.vala;$(ProjectDir)src\compiler\compiler.vala;$(ProjectDir)src\file-monitor.vala;$(ProjectDir)src\async-task.vala;$(ProjectDir)src\windows\windows-host-session.vala;$(ProjectDir)src\windows\winjector.vala;$(ProjectDir)src\windows\frida-helper-process.vala;$(ProjectDir)src\socket\socket-host-session.vala;$(ProjectDir)src\fruity\fruity-host-session.vala;$(ProjectDir)src\fruity\dtx.vala;$(ProjectDir)src\fruity\lockdown.vala;$(ProjectDir)src\fruity\installation-proxy.vala;$(ProjectDir)src\fruity\springboard-services.vala;$(ProjectDir)src\fruity\lldb.vala;$(ProjectDir)src\fruity\injector.vala;$(ProjectDir)src\fruity\usbmux.vala;$(ProjectDir)src\fruity\keyed-archive.vala;$(ProjectDir)src\fruity\plist.vala;$(ProjectDir)src\fruity\plist-service.vala;$(ProjectDir)src\droidy\droidy-host-session.vala;$(ProjectDir)src\droidy\droidy-client.vala;$(ProjectDir)src\droidy\jdwp.vala;$(ProjectDir)src\droidy\injector.vala;$(ProjectDir)src\droidy\axml.vala;$(ProjectDir)src\barebone\barebone-host-session.vala;$(ProjectDir)src\barebone\script.vala;$(ProjectDir)src\barebone\machine.vala;$(ProjectDir)src\barebone\allocator.vala;$(ProjectDir)src\barebone\callback.vala;$(ProjectDir)src\barebone\memory-scanner.vala;$(ProjectDir)src\barebone\interceptor.vala;$(ProjectDir)src\barebone\rust-module.vala;$(ProjectDir)src\barebone\arch-x86\machine.vala;$(ProjectDir)src\barebone\arch-x86_64\machine.vala;$(ProjectDir)src\barebone\arch-arm\machine.vala;$(ProjectDir)src\barebone\arch-arm64\machine.vala;$(ProjectDir)src\barebone\arch-unknown\machine.vala;$(IntDir)data\compiler.stamp;$(IntDir)data\windows.stamp;$(IntDir)data\agent.stamp;$(IntDir)data\barebone.stamp;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling vala code</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mkdir "$(IntDir)data" 2>NUL
|
||||
mkdir "$(IntDir)src" 2>NUL
|
||||
"$(ValaCompiler)" src/frida.vala src/control-service.vala src/portal-service.vala src/host-session-service.vala src/agent-container.vala src/gdb.vala src/system.vala src/compiler/compiler.vala src/file-monitor.vala src/async-task.vala src/windows/windows-host-session.vala src/windows/winjector.vala src/windows/frida-helper-process.vala src/socket/socket-host-session.vala src/fruity/fruity-host-session.vala src/fruity/dtx.vala src/fruity/lockdown.vala src/fruity/installation-proxy.vala src/fruity/springboard-services.vala src/fruity/lldb.vala src/fruity/injector.vala src/fruity/usbmux.vala src/fruity/keyed-archive.vala src/fruity/plist.vala src/fruity/plist-service.vala src/droidy/droidy-host-session.vala src/droidy/droidy-client.vala src/droidy/jdwp.vala src/droidy/injector.vala src/droidy/axml.vala src/barebone/barebone-host-session.vala src/barebone/script.vala src/barebone/machine.vala src/barebone/allocator.vala src/barebone/callback.vala src/barebone/memory-scanner.vala src/barebone/interceptor.vala src/barebone/rust-module.vala src/barebone/arch-x86/machine.vala src/barebone/arch-x86_64/machine.vala src/barebone/arch-arm/machine.vala src/barebone/arch-arm64/machine.vala src/barebone/arch-unknown/machine.vala --ccode --directory=$(IntDir) --library=frida-core --gir=Frida-1.0.gir --header=$(IntDir)frida-core.h --symbols=$(IntDir)frida-core.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-pipe-32" --vapidir="$(IntDir)..\frida-pipe-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" --vapidir="$(IntDir)data" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gmodule-2.0 --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=libsoup-3.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-inspector-1.0 --pkg=libbrotlidec --pkg=quickjs --pkg=frida-base --pkg=frida-pipe --pkg=frida-helper-backend --pkg=frida-data-compiler --pkg=frida-data-helper --pkg=frida-data-agent --pkg=frida-data-barebone || exit 1
|
||||
mkdir "$(IntDir)api" 2>NUL
|
||||
$(Python) "$(ProjectDir)src\api\generate.py" 1.0 "$(IntDir)frida-core.vapi" "$(IntDir)frida-core.h" "$(IntDir)..\frida-base-32\frida-base.vapi" "$(IntDir)..\frida-base-32\frida-base.h" "$(IntDir)api"
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ValaCompiler);$(ProjectDir)src\control-service.vala;$(ProjectDir)src\portal-service.vala;$(ProjectDir)src\host-session-service.vala;$(ProjectDir)src\agent-container.vala;$(ProjectDir)src\gdb.vala;$(ProjectDir)src\system.vala;$(ProjectDir)src\compiler\compiler.vala;$(ProjectDir)src\file-monitor.vala;$(ProjectDir)src\async-task.vala;$(ProjectDir)src\windows\windows-host-session.vala;$(ProjectDir)src\windows\winjector.vala;$(ProjectDir)src\windows\frida-helper-process.vala;$(ProjectDir)src\socket\socket-host-session.vala;$(ProjectDir)src\fruity\fruity-host-session.vala;$(ProjectDir)src\fruity\dtx.vala;$(ProjectDir)src\fruity\lockdown.vala;$(ProjectDir)src\fruity\installation-proxy.vala;$(ProjectDir)src\fruity\springboard-services.vala;$(ProjectDir)src\fruity\lldb.vala;$(ProjectDir)src\fruity\injector.vala;$(ProjectDir)src\fruity\usbmux.vala;$(ProjectDir)src\fruity\keyed-archive.vala;$(ProjectDir)src\fruity\plist.vala;$(ProjectDir)src\fruity\plist-service.vala;$(ProjectDir)src\droidy\droidy-host-session.vala;$(ProjectDir)src\droidy\droidy-client.vala;$(ProjectDir)src\droidy\jdwp.vala;$(ProjectDir)src\droidy\injector.vala;$(ProjectDir)src\droidy\axml.vala;$(ProjectDir)src\barebone\barebone-host-session.vala;$(ProjectDir)src\barebone\script.vala;$(ProjectDir)src\barebone\machine.vala;$(ProjectDir)src\barebone\allocator.vala;$(ProjectDir)src\barebone\callback.vala;$(ProjectDir)src\barebone\memory-scanner.vala;$(ProjectDir)src\barebone\interceptor.vala;$(ProjectDir)src\barebone\rust-module.vala;$(ProjectDir)src\barebone\arch-x86\machine.vala;$(ProjectDir)src\barebone\arch-x86_64\machine.vala;$(ProjectDir)src\barebone\arch-arm\machine.vala;$(ProjectDir)src\barebone\arch-arm64\machine.vala;$(ProjectDir)src\barebone\arch-unknown\machine.vala;$(IntDir)data\compiler.stamp;$(IntDir)data\windows.stamp;$(IntDir)data\agent.stamp;$(IntDir)data\barebone.stamp;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling vala code</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mkdir "$(IntDir)data" 2>NUL
|
||||
mkdir "$(IntDir)src" 2>NUL
|
||||
"$(ValaCompiler)" src/frida.vala src/control-service.vala src/portal-service.vala src/host-session-service.vala src/agent-container.vala src/gdb.vala src/system.vala src/compiler/compiler.vala src/file-monitor.vala src/async-task.vala src/windows/windows-host-session.vala src/windows/winjector.vala src/windows/frida-helper-process.vala src/socket/socket-host-session.vala src/fruity/fruity-host-session.vala src/fruity/dtx.vala src/fruity/lockdown.vala src/fruity/installation-proxy.vala src/fruity/springboard-services.vala src/fruity/lldb.vala src/fruity/injector.vala src/fruity/usbmux.vala src/fruity/keyed-archive.vala src/fruity/plist.vala src/fruity/plist-service.vala src/droidy/droidy-host-session.vala src/droidy/droidy-client.vala src/droidy/jdwp.vala src/droidy/injector.vala src/droidy/axml.vala src/barebone/barebone-host-session.vala src/barebone/script.vala src/barebone/machine.vala src/barebone/allocator.vala src/barebone/callback.vala src/barebone/memory-scanner.vala src/barebone/interceptor.vala src/barebone/rust-module.vala src/barebone/arch-x86/machine.vala src/barebone/arch-x86_64/machine.vala src/barebone/arch-arm/machine.vala src/barebone/arch-arm64/machine.vala src/barebone/arch-unknown/machine.vala --ccode --directory=$(IntDir) --library=frida-core --gir=Frida-1.0.gir --header=$(IntDir)frida-core.h --symbols=$(IntDir)frida-core.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-pipe-32" --vapidir="$(IntDir)..\frida-pipe-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" --vapidir="$(IntDir)data" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gmodule-2.0 --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=libsoup-3.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-inspector-1.0 --pkg=libbrotlidec --pkg=quickjs --pkg=frida-base --pkg=frida-pipe --pkg=frida-helper-backend --pkg=frida-data-compiler --pkg=frida-data-helper --pkg=frida-data-agent --pkg=frida-data-barebone || exit 1
|
||||
mkdir "$(IntDir)api" 2>NUL
|
||||
$(Python) "$(ProjectDir)src\api\generate.py" 1.0 "$(IntDir)frida-core.vapi" "$(IntDir)frida-core.h" "$(IntDir)..\frida-base-64\frida-base.vapi" "$(IntDir)..\frida-base-64\frida-base.h" "$(IntDir)api"
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ValaCompiler);$(ProjectDir)src\control-service.vala;$(ProjectDir)src\portal-service.vala;$(ProjectDir)src\host-session-service.vala;$(ProjectDir)src\agent-container.vala;$(ProjectDir)src\gdb.vala;$(ProjectDir)src\system.vala;$(ProjectDir)src\compiler\compiler.vala;$(ProjectDir)src\file-monitor.vala;$(ProjectDir)src\async-task.vala;$(ProjectDir)src\windows\windows-host-session.vala;$(ProjectDir)src\windows\winjector.vala;$(ProjectDir)src\windows\frida-helper-process.vala;$(ProjectDir)src\socket\socket-host-session.vala;$(ProjectDir)src\fruity\fruity-host-session.vala;$(ProjectDir)src\fruity\dtx.vala;$(ProjectDir)src\fruity\lockdown.vala;$(ProjectDir)src\fruity\installation-proxy.vala;$(ProjectDir)src\fruity\springboard-services.vala;$(ProjectDir)src\fruity\lldb.vala;$(ProjectDir)src\fruity\injector.vala;$(ProjectDir)src\fruity\usbmux.vala;$(ProjectDir)src\fruity\keyed-archive.vala;$(ProjectDir)src\fruity\plist.vala;$(ProjectDir)src\fruity\plist-service.vala;$(ProjectDir)src\droidy\droidy-host-session.vala;$(ProjectDir)src\droidy\droidy-client.vala;$(ProjectDir)src\droidy\jdwp.vala;$(ProjectDir)src\droidy\injector.vala;$(ProjectDir)src\droidy\axml.vala;$(ProjectDir)src\barebone\barebone-host-session.vala;$(ProjectDir)src\barebone\script.vala;$(ProjectDir)src\barebone\machine.vala;$(ProjectDir)src\barebone\allocator.vala;$(ProjectDir)src\barebone\callback.vala;$(ProjectDir)src\barebone\memory-scanner.vala;$(ProjectDir)src\barebone\interceptor.vala;$(ProjectDir)src\barebone\rust-module.vala;$(ProjectDir)src\barebone\arch-x86\machine.vala;$(ProjectDir)src\barebone\arch-x86_64\machine.vala;$(ProjectDir)src\barebone\arch-arm\machine.vala;$(ProjectDir)src\barebone\arch-arm64\machine.vala;$(ProjectDir)src\barebone\arch-unknown\machine.vala;$(IntDir)data\compiler.stamp;$(IntDir)data\windows.stamp;$(IntDir)data\agent.stamp;$(IntDir)data\barebone.stamp;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\compiler\compiler.resources">
|
||||
<FileType>Document</FileType>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\compiler\generate-agent.py;src\compiler\agent-entrypoint.js;src\compiler\agent-core.ts;src\compiler\agent-warmup.js;src\compiler\package.json;src\compiler\package-lock.json;src\compiler\tsconfig.json;src\compiler\rollup.config.agent-core.ts;src\compiler\rollup.config.typescript.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\compiler\generate-agent.py;src\compiler\agent-entrypoint.js;src\compiler\agent-core.ts;src\compiler\agent-warmup.js;src\compiler\package.json;src\compiler\package-lock.json;src\compiler\tsconfig.json;src\compiler\rollup.config.agent-core.ts;src\compiler\rollup.config.typescript.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\compiler\generate-agent.py;src\compiler\agent-entrypoint.js;src\compiler\agent-core.ts;src\compiler\agent-warmup.js;src\compiler\package.json;src\compiler\package-lock.json;src\compiler\tsconfig.json;src\compiler\rollup.config.agent-core.ts;src\compiler\rollup.config.typescript.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\compiler\generate-agent.py;src\compiler\agent-entrypoint.js;src\compiler\agent-core.ts;src\compiler\agent-warmup.js;src\compiler\package.json;src\compiler\package-lock.json;src\compiler\tsconfig.json;src\compiler\rollup.config.agent-core.ts;src\compiler\rollup.config.typescript.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Serializing compiler resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\compiler.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Serializing compiler resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\compiler.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Serializing compiler resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\compiler.stamp</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Serializing compiler resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\compiler.stamp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">if $(ProcessorArchitecture)==amd64 (
|
||||
set host_arch=x64
|
||||
set cpu_mode=64
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\x64-Release\bin\windows-x86_64\v8-mksnapshot-windows-x86_64.exe
|
||||
) else (
|
||||
set host_arch=ia32
|
||||
set cpu_mode=32
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\Win32-Release\bin\windows-x86\v8-mksnapshot-windows-x86.exe
|
||||
)
|
||||
if $(Configuration)==Debug (
|
||||
set v8_mksnapshot=""
|
||||
)
|
||||
$(Python) src\compiler\generate-agent.py src\compiler "$(IntDir)src\compiler" windows %host_arch% %cpu_mode% %v8_mksnapshot% || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\compiler\compiler.resources" -o "$(IntDir)data\frida-data-compiler" "$(IntDir)src\compiler\agent.js" "$(IntDir)src\compiler\snapshot.bin" || exit 1
|
||||
REM. > "$(IntDir)data\compiler.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">if $(ProcessorArchitecture)==amd64 (
|
||||
set host_arch=x64
|
||||
set cpu_mode=64
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\x64-Release\bin\windows-x86_64\v8-mksnapshot-windows-x86_64.exe
|
||||
) else (
|
||||
set host_arch=ia32
|
||||
set cpu_mode=32
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\Win32-Release\bin\windows-x86\v8-mksnapshot-windows-x86.exe
|
||||
)
|
||||
if $(Configuration)==Debug (
|
||||
set v8_mksnapshot=""
|
||||
)
|
||||
$(Python) src\compiler\generate-agent.py src\compiler "$(IntDir)src\compiler" windows %host_arch% %cpu_mode% %v8_mksnapshot% || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\compiler\compiler.resources" -o "$(IntDir)data\frida-data-compiler" "$(IntDir)src\compiler\agent.js" "$(IntDir)src\compiler\snapshot.bin" || exit 1
|
||||
REM. > "$(IntDir)data\compiler.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if $(ProcessorArchitecture)==amd64 (
|
||||
set host_arch=x64
|
||||
set cpu_mode=64
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\x64-Release\bin\windows-x86_64\v8-mksnapshot-windows-x86_64.exe
|
||||
) else (
|
||||
set host_arch=ia32
|
||||
set cpu_mode=32
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\Win32-Release\bin\windows-x86\v8-mksnapshot-windows-x86.exe
|
||||
)
|
||||
if $(Configuration)==Debug (
|
||||
set v8_mksnapshot=""
|
||||
)
|
||||
$(Python) src\compiler\generate-agent.py src\compiler "$(IntDir)src\compiler" windows %host_arch% %cpu_mode% %v8_mksnapshot% || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\compiler\compiler.resources" -o "$(IntDir)data\frida-data-compiler" "$(IntDir)src\compiler\agent.js" "$(IntDir)src\compiler\snapshot.bin" || exit 1
|
||||
REM. > "$(IntDir)data\compiler.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if $(ProcessorArchitecture)==amd64 (
|
||||
set host_arch=x64
|
||||
set cpu_mode=64
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\x64-Release\bin\windows-x86_64\v8-mksnapshot-windows-x86_64.exe
|
||||
) else (
|
||||
set host_arch=ia32
|
||||
set cpu_mode=32
|
||||
set v8_mksnapshot=$(SolutionDir)build\sdk-windows\Win32-Release\bin\windows-x86\v8-mksnapshot-windows-x86.exe
|
||||
)
|
||||
if $(Configuration)==Debug (
|
||||
set v8_mksnapshot=""
|
||||
)
|
||||
$(Python) src\compiler\generate-agent.py src\compiler "$(IntDir)src\compiler" windows %host_arch% %cpu_mode% %v8_mksnapshot% || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\compiler\compiler.resources" -o "$(IntDir)data\frida-data-compiler" "$(IntDir)src\compiler\agent.js" "$(IntDir)src\compiler\snapshot.bin" || exit 1
|
||||
REM. > "$(IntDir)data\compiler.stamp"
|
||||
</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\barebone\barebone.resources">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Python) src\barebone\generate-script-runtime.py src\barebone "$(IntDir)src\barebone" || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\barebone\barebone.resources" -o "$(IntDir)data\frida-data-barebone" "$(IntDir)src\barebone\script-runtime.js" src\barebone\helpers\memory-scanner-arm64.elf || exit 1
|
||||
REM. > "$(IntDir)data\barebone.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Python) src\barebone\generate-script-runtime.py src\barebone "$(IntDir)src\barebone" || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\barebone\barebone.resources" -o "$(IntDir)data\frida-data-barebone" "$(IntDir)src\barebone\script-runtime.js" src\barebone\helpers\memory-scanner-arm64.elf || exit 1
|
||||
REM. > "$(IntDir)data\barebone.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Python) src\barebone\generate-script-runtime.py src\barebone "$(IntDir)src\barebone" || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\barebone\barebone.resources" -o "$(IntDir)data\frida-data-barebone" "$(IntDir)src\barebone\script-runtime.js" src\barebone\helpers\memory-scanner-arm64.elf || exit 1
|
||||
REM. > "$(IntDir)data\barebone.stamp"
|
||||
</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Python) src\barebone\generate-script-runtime.py src\barebone "$(IntDir)src\barebone" || exit 1
|
||||
mkdir "$(IntDir)data" 2>NUL
|
||||
"$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe" -m $(PlatformTarget) -c "$(ProjectDir)src\barebone\barebone.resources" -o "$(IntDir)data\frida-data-barebone" "$(IntDir)src\barebone\script-runtime.js" src\barebone\helpers\memory-scanner-arm64.elf || exit 1
|
||||
REM. > "$(IntDir)data\barebone.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Serializing Barebone resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\barebone.stamp</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\barebone\generate-script-runtime.py;src\barebone\package.json;src\barebone\package-lock.json;src\barebone\script-runtime\console.ts;src\barebone\script-runtime\entrypoint.ts;src\barebone\script-runtime\gdb.ts;src\barebone\script-runtime\hexdump.ts;src\barebone\script-runtime\message-dispatcher.ts;src\barebone\script-runtime\primitives.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Serializing Barebone resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\barebone.stamp</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\barebone\generate-script-runtime.py;src\barebone\package.json;src\barebone\package-lock.json;src\barebone\script-runtime\console.ts;src\barebone\script-runtime\entrypoint.ts;src\barebone\script-runtime\gdb.ts;src\barebone\script-runtime\hexdump.ts;src\barebone\script-runtime\message-dispatcher.ts;src\barebone\script-runtime\primitives.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Serializing Barebone resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\barebone.stamp</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\barebone\generate-script-runtime.py;src\barebone\package.json;src\barebone\package-lock.json;src\barebone\script-runtime\console.ts;src\barebone\script-runtime\entrypoint.ts;src\barebone\script-runtime\gdb.ts;src\barebone\script-runtime\hexdump.ts;src\barebone\script-runtime\message-dispatcher.ts;src\barebone\script-runtime\primitives.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Serializing Barebone resources</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\barebone.stamp</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)..\frida-resource-compiler\frida-resource-compiler.exe;src\barebone\generate-script-runtime.py;src\barebone\package.json;src\barebone\package-lock.json;src\barebone\script-runtime\console.ts;src\barebone\script-runtime\entrypoint.ts;src\barebone\script-runtime\gdb.ts;src\barebone\script-runtime\hexdump.ts;src\barebone\script-runtime\message-dispatcher.ts;src\barebone\script-runtime\primitives.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
</CustomBuild>
|
||||
<None Include="src\control-service.vala" />
|
||||
<None Include="src\portal-service.vala" />
|
||||
<None Include="src\host-session-service.vala" />
|
||||
<None Include="src\agent-container.vala" />
|
||||
<None Include="src\gdb.vala" />
|
||||
<None Include="src\system.vala" />
|
||||
<None Include="src\compiler\compiler.vala" />
|
||||
<None Include="src\file-monitor.vala" />
|
||||
<None Include="src\async-task.vala" />
|
||||
<None Include="src\windows\windows-host-session.vala" />
|
||||
<None Include="src\windows\winjector.vala" />
|
||||
<None Include="src\windows\frida-helper-process.vala" />
|
||||
<None Include="src\socket\socket-host-session.vala" />
|
||||
<None Include="src\fruity\fruity-host-session.vala" />
|
||||
<None Include="src\fruity\dtx.vala" />
|
||||
<None Include="src\fruity\lockdown.vala" />
|
||||
<None Include="src\fruity\installation-proxy.vala" />
|
||||
<None Include="src\fruity\springboard-services.vala" />
|
||||
<None Include="src\fruity\lldb.vala" />
|
||||
<None Include="src\fruity\injector.vala" />
|
||||
<None Include="src\fruity\usbmux.vala" />
|
||||
<None Include="src\fruity\keyed-archive.vala" />
|
||||
<None Include="src\fruity\plist.vala" />
|
||||
<None Include="src\fruity\plist-service.vala" />
|
||||
<None Include="src\droidy\droidy-host-session.vala" />
|
||||
<None Include="src\droidy\droidy-client.vala" />
|
||||
<None Include="src\droidy\jdwp.vala" />
|
||||
<None Include="src\droidy\injector.vala" />
|
||||
<None Include="src\droidy\axml.vala" />
|
||||
<None Include="src\barebone\barebone-host-session.vala" />
|
||||
<None Include="src\barebone\script.vala" />
|
||||
<None Include="src\barebone\machine.vala" />
|
||||
<None Include="src\barebone\allocator.vala" />
|
||||
<None Include="src\barebone\callback.vala" />
|
||||
<None Include="src\barebone\memory-scanner.vala" />
|
||||
<None Include="src\barebone\interceptor.vala" />
|
||||
<None Include="src\barebone\rust-module.vala" />
|
||||
<None Include="src\barebone\arch-x86\machine.vala" />
|
||||
<None Include="src\barebone\arch-x86_64\machine.vala" />
|
||||
<None Include="src\barebone\arch-arm\machine.vala" />
|
||||
<None Include="src\barebone\arch-arm64\machine.vala" />
|
||||
<None Include="src\barebone\arch-unknown\machine.vala" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)src\frida.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\frida-glue.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\control-service.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\portal-service.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\host-session-service.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\agent-container.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\gdb.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\system.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\compiler\compiler.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\compiler\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\compiler\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\compiler\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\compiler\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\file-monitor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\async-task.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\windows-host-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\frida-helper-process-glue.c" />
|
||||
<ClCompile Include="src\windows\windows-host-session-glue.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\winjector.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\winjector-glue.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\frida-helper-process.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\access-helpers.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\icon-helpers.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\system-windows.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\windows\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\socket\socket-host-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\socket\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\socket\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\socket\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\socket\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\fruity-host-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\dtx.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\fruity\fruity-host-session-windows.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\lockdown.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\installation-proxy.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\springboard-services.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\lldb.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\injector.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\usbmux.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\keyed-archive.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\plist.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\plist-service.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\fruity\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\droidy-host-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\droidy-client.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\jdwp.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\injector.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\axml.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\droidy\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\barebone-host-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\script.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\allocator.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\callback.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\memory-scanner.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\interceptor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\rust-module.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-x86\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\arch-x86\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\arch-x86\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\arch-x86\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\arch-x86\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-x86_64\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\arch-x86_64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\arch-x86_64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\arch-x86_64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\arch-x86_64\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-arm\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\arch-arm\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\arch-arm\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\arch-arm\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\arch-arm\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-arm64\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\arch-arm64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\arch-arm64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\arch-arm64\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\arch-arm64\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-unknown\machine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)src\barebone\arch-unknown\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)src\barebone\arch-unknown\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)src\barebone\arch-unknown\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)src\barebone\arch-unknown\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-compiler.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-helper.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-agent.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-barebone.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)data\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)data\</ObjectFileName>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\frida-gum\bindings\gumjs\gumjs-inspector.vcxproj">
|
||||
<Project>{0b28ec3c-cc22-4067-9f08-6a3fac4fb454}</Project>
|
||||
<Private>false</Private>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="lib\agent\frida-agent-32.vcxproj">
|
||||
<Project>{b111ba27-807a-4b16-a4de-a33d7d6d7ce1}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="lib\agent\frida-agent-64.vcxproj">
|
||||
<Project>{3194ec55-c1e5-423d-820f-13d38409b9d0}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="src\windows\frida-helper-32.vcxproj">
|
||||
<Project>{e0ac03f2-f077-4ba7-88dd-bbe95b4e4ef0}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="src\windows\frida-helper-64.vcxproj">
|
||||
<Project>{037e8466-f87b-486d-b6ad-fecb5740ce2c}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="tools\frida-resource-compiler.vcxproj">
|
||||
<Project>{81b3e411-8676-41eb-84c6-1e5307f0c5ff}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-core.h" />
|
||||
<ClInclude Include="src\windows\access-helpers.h" />
|
||||
<ClInclude Include="src\windows\frida-helper-process-glue.h" />
|
||||
<ClInclude Include="src\windows\icon-helpers.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,430 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{5871a71e-92fa-44a7-847f-91d4ad19deb0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\core">
|
||||
<UniqueIdentifier>{eef66507-e4a8-4117-87d0-a5b24833ddba}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{0ddd771d-c7e1-405b-a3e6-a4433e9094db}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\windows">
|
||||
<UniqueIdentifier>{28f8e0ab-f994-4a5b-b62b-edcdcb9d0c34}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\windows">
|
||||
<UniqueIdentifier>{21f538e1-a14f-441b-9e2e-7303c1465c5b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\socket">
|
||||
<UniqueIdentifier>{d4552ab5-00ec-4394-bf75-666ac4f869a1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\socket">
|
||||
<UniqueIdentifier>{620f3726-c7dd-4d6f-8f54-ad08f2ff594a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\fruity">
|
||||
<UniqueIdentifier>{7c397a46-f5dd-401d-b3c8-423615a25619}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\fruity">
|
||||
<UniqueIdentifier>{2d5a13f8-9bcb-4d70-9f8a-9597707fc771}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\droidy">
|
||||
<UniqueIdentifier>{7c397a46-f5dd-401d-b3c8-423615a25618}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\droidy">
|
||||
<UniqueIdentifier>{2d5a13f8-9bcb-4d70-9f8a-9597707fc770}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\data">
|
||||
<UniqueIdentifier>{e441c3c0-5949-44e4-8617-0483732946e8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files\windows">
|
||||
<UniqueIdentifier>{c619adbc-c722-4220-8c57-9d40ce4e94ee}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\compiler">
|
||||
<UniqueIdentifier>{440a7aec-8571-44e1-b100-6983d61a26ef}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\compiler">
|
||||
<UniqueIdentifier>{977f662a-1dea-4141-b63c-a71768cc07cf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files\compiler">
|
||||
<UniqueIdentifier>{56aeb7fc-6443-41fd-8bad-d5e3dd174f5c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone">
|
||||
<UniqueIdentifier>{8095dacf-9529-4daf-9fa7-124a0dbd8c8c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone\arch-arm64">
|
||||
<UniqueIdentifier>{5eb2dd88-94b6-46fb-bb45-04a18223ffa4}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files\barebone">
|
||||
<UniqueIdentifier>{7543fdf8-bcba-4faf-b776-ba8c60b43ea6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone">
|
||||
<UniqueIdentifier>{ee876d25-94c0-4b08-b62e-542701f53a5a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone\arch-arm">
|
||||
<UniqueIdentifier>{a44b2b16-0f6e-4a59-ace2-5eafb5842cd3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone\arch-unknown">
|
||||
<UniqueIdentifier>{732196c7-efbb-467b-9a46-1b893a3ec1cf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone\arch-x86_64">
|
||||
<UniqueIdentifier>{890a4566-74ae-4d0a-a479-7e45580171db}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone\arch-arm64">
|
||||
<UniqueIdentifier>{e062def2-897c-47e2-bde1-74b23a6066a8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated\barebone\arch-x86">
|
||||
<UniqueIdentifier>{6408ed39-33ab-461c-b887-a8da9e80ba2b}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone\arch-arm">
|
||||
<UniqueIdentifier>{98bd47cd-d261-4776-942b-1a40a30bc3ff}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone\arch-x86">
|
||||
<UniqueIdentifier>{fe48f50a-d564-4618-bbd3-813d5b7a79cb}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone\arch-unknown">
|
||||
<UniqueIdentifier>{0e4c39a3-82f0-4034-af21-3f787d114fe6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\barebone\arch-x86_64">
|
||||
<UniqueIdentifier>{abc9ec18-ef36-4200-ac4c-1dcba33f5db5}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="src\helper.resources">
|
||||
<Filter>Resource Files</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\agent.resources">
|
||||
<Filter>Resource Files</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\frida.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
<None Include="src\host-session-service.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\agent-container.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\gdb.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\system.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\windows\windows-host-session.vala">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</None>
|
||||
<None Include="src\windows\winjector.vala">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</None>
|
||||
<None Include="src\windows\frida-helper-process.vala">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</None>
|
||||
<None Include="src\socket\socket-host-session.vala">
|
||||
<Filter>Source Files\socket</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\fruity-host-session.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\dtx.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\lockdown.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\installation-proxy.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\lldb.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\injector.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\usbmux.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\keyed-archive.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\plist.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\plist-service.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\droidy\droidy-host-session.vala">
|
||||
<Filter>Source Files\droidy</Filter>
|
||||
</None>
|
||||
<None Include="src\droidy\droidy-client.vala">
|
||||
<Filter>Source Files\droidy</Filter>
|
||||
</None>
|
||||
<CustomBuild Include="src\compiler\compiler.resources">
|
||||
<Filter>Resource Files\compiler</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="src\barebone\barebone.resources">
|
||||
<Filter>Resource Files\barebone</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-core.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="$(IntDir)src\frida.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\frida-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\host-session-service.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\agent-container.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\gdb.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\system.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\windows-host-session.c">
|
||||
<Filter>Source Files\generated\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\windows-host-session-glue.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\winjector.c">
|
||||
<Filter>Source Files\generated\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\winjector-glue.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\windows\frida-helper-process.c">
|
||||
<Filter>Source Files\generated\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="src\windows\access-helpers.h">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="src\windows\access-helpers.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="src\windows\icon-helpers.h">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="src\windows\icon-helpers.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\windows\system-windows.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\socket\socket-host-session.c">
|
||||
<Filter>Source Files\generated\socket</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\fruity-host-session.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\dtx.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\fruity\fruity-host-session-windows.c">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\lockdown.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\installation-proxy.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\lldb.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\injector.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\usbmux.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\keyed-archive.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\plist.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\plist-service.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\droidy-host-session.c">
|
||||
<Filter>Source Files\generated\droidy</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\droidy-client.c">
|
||||
<Filter>Source Files\generated\droidy</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-helper.c">
|
||||
<Filter>Source Files\generated\data</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-agent.c">
|
||||
<Filter>Source Files\generated\data</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="src\windows\frida-helper-process-glue.h">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\windows\frida-helper-process-glue.c">
|
||||
<Filter>Source Files\windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\injector.c">
|
||||
<Filter>Source Files\generated\droidy</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\axml.c">
|
||||
<Filter>Source Files\generated\droidy</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\droidy\jdwp.c">
|
||||
<Filter>Source Files\generated\droidy</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\async-task.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\control-service.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\file-monitor.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\portal-service.c">
|
||||
<Filter>Source Files\generated\core</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\fruity\springboard-services.c">
|
||||
<Filter>Source Files\generated\fruity</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\compiler\compiler.c">
|
||||
<Filter>Source Files\generated\compiler</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-compiler.c">
|
||||
<Filter>Source Files\generated\data</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\barebone-host-session.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\script.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\machine.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\allocator.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\callback.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\memory-scanner.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\interceptor.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\rust-module.c">
|
||||
<Filter>Source Files\generated\barebone</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)data\frida-data-barebone.c">
|
||||
<Filter>Source Files\generated\data</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-arm64\machine.c">
|
||||
<Filter>Source Files\generated\barebone\arch-arm64</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-arm\machine.c">
|
||||
<Filter>Source Files\generated\barebone\arch-arm</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-x86\machine.c">
|
||||
<Filter>Source Files\generated\barebone\arch-x86</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-unknown\machine.c">
|
||||
<Filter>Source Files\generated\barebone\arch-unknown</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)src\barebone\arch-x86_64\machine.c">
|
||||
<Filter>Source Files\generated\barebone\arch-x86_64</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="src\droidy\injector.vala">
|
||||
<Filter>Source Files\droidy</Filter>
|
||||
</None>
|
||||
<None Include="src\droidy\jdwp.vala">
|
||||
<Filter>Source Files\droidy</Filter>
|
||||
</None>
|
||||
<None Include="src\async-task.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\control-service.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\file-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\portal-service.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="src\fruity\springboard-services.vala">
|
||||
<Filter>Source Files\fruity</Filter>
|
||||
</None>
|
||||
<None Include="src\compiler\compiler.vala">
|
||||
<Filter>Source Files\compiler</Filter>
|
||||
</None>
|
||||
<None Include="src\droidy\axml.vala">
|
||||
<Filter>Source Files\droidy</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\barebone-host-session.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\script.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\machine.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\allocator.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\callback.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\memory-scanner.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\interceptor.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\rust-module.vala">
|
||||
<Filter>Source Files\barebone</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\arch-arm64\machine.vala">
|
||||
<Filter>Source Files\barebone\arch-arm64</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\arch-arm\machine.vala">
|
||||
<Filter>Source Files\barebone\arch-arm</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\arch-x86\machine.vala">
|
||||
<Filter>Source Files\barebone\arch-x86</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\arch-unknown\machine.vala">
|
||||
<Filter>Source Files\barebone\arch-unknown</Filter>
|
||||
</None>
|
||||
<None Include="src\barebone\arch-x86_64\machine.vala">
|
||||
<Filter>Source Files\barebone\arch-x86_64</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,174 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{5DBC3541-98D6-4F06-A184-B6116544ED26}</ProjectGuid>
|
||||
<RootNamespace>frida-gadget</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Link>
|
||||
<ModuleDefinitionFile>lib\gadget\frida-gadget.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalDependencies>gum-32.lib;gumjs-32.lib;frida-base-32.lib;frida-payload-32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-payload-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-payload-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Link>
|
||||
<ModuleDefinitionFile>lib\gadget\frida-gadget.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<AdditionalDependencies>gum-64.lib;gumjs-64.lib;frida-base-64.lib;frida-payload-64.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-payload-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-payload-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Link>
|
||||
<ModuleDefinitionFile>lib\gadget\frida-gadget.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalDependencies>gum-32.lib;gumjs-32.lib;frida-base-32.lib;frida-payload-32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-payload-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-payload-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Link>
|
||||
<ModuleDefinitionFile>lib\gadget\frida-gadget.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<AdditionalDependencies>gum-64.lib;gumjs-64.lib;frida-base-64.lib;frida-payload-64.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-payload-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-payload-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="lib\gadget\gadget.vala">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(ValaCompiler)" lib/gadget/gadget.vala --ccode --directory=$(IntDir) --library=frida-gadget --header=$(IntDir)frida-gadget.h --symbols=$(IntDir)frida-gadget.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-payload-32" --vapidir="$(IntDir)..\frida-payload-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gee-0.8 --pkg=gio-2.0 --pkg=nice --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base --pkg=frida-payload || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(ValaCompiler)" lib/gadget/gadget.vala --ccode --directory=$(IntDir) --library=frida-gadget --header=$(IntDir)frida-gadget.h --symbols=$(IntDir)frida-gadget.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-payload-32" --vapidir="$(IntDir)..\frida-payload-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gee-0.8 --pkg=gio-2.0 --pkg=nice --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base --pkg=frida-payload || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(ValaCompiler)" lib/gadget/gadget.vala --ccode --directory=$(IntDir) --library=frida-gadget --header=$(IntDir)frida-gadget.h --symbols=$(IntDir)frida-gadget.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-payload-32" --vapidir="$(IntDir)..\frida-payload-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gee-0.8 --pkg=gio-2.0 --pkg=nice --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base --pkg=frida-payload || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(ValaCompiler)" lib/gadget/gadget.vala --ccode --directory=$(IntDir) --library=frida-gadget --header=$(IntDir)frida-gadget.h --symbols=$(IntDir)frida-gadget.symbols --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-payload-32" --vapidir="$(IntDir)..\frida-payload-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gee-0.8 --pkg=gio-2.0 --pkg=nice --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base --pkg=frida-payload || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)lib\gadget\gadget.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)gadget\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)gadget\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)gadget\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)gadget\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lib\gadget\gadget-glue.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{f60b305c-bd28-4f2c-9c4c-cbabeb0c2142}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="lib\gadget\gadget-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)lib\gadget\gadget.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="lib\gadget\gadget.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,175 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{C21A9593-4BE8-4BE5-A7E6-39A1612FA569}</ProjectGuid>
|
||||
<RootNamespace>frida-portal</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="portal\portal.vala">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(ValaCompiler)" portal/portal.vala --ccode --directory=$(IntDir) --library=frida-portal --header=$(IntDir)frida-portal.h --symbols=$(IntDir)frida-portal.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(ValaCompiler)" portal/portal.vala --ccode --directory=$(IntDir) --library=frida-portal --header=$(IntDir)frida-portal.h --symbols=$(IntDir)frida-portal.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(ValaCompiler)" portal/portal.vala --ccode --directory=$(IntDir) --library=frida-portal --header=$(IntDir)frida-portal.h --symbols=$(IntDir)frida-portal.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(ValaCompiler)" portal/portal.vala --ccode --directory=$(IntDir) --library=frida-portal --header=$(IntDir)frida-portal.h --symbols=$(IntDir)frida-portal.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gioopenssl --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="frida-core.vcxproj">
|
||||
<Project>{b7dc9b02-a5ff-4aa1-b2a2-dc1653168d44}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)portal\portal.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)portal\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)portal\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)portal\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)portal\</ObjectFileName>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{4f6f9d9e-2378-4fde-b1b2-f54395a16475}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="portal\portal.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)portal\portal.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,176 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{218DDF16-1726-4492-A92F-DC190397DB44}</ProjectGuid>
|
||||
<RootNamespace>frida-server</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-32;$(IntDir)..\frida-helper-backend-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-core;$(IntDir)..\frida-base-64;$(IntDir)..\frida-helper-backend-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="server\server.vala">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(ValaCompiler)" server/server.vala --ccode --directory=$(IntDir) --library=frida-server --header=$(IntDir)frida-server.h --symbols=$(IntDir)frida-server.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ValaCompiler);$(ProjectDir)server\server.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(ValaCompiler)" server/server.vala --ccode --directory=$(IntDir) --library=frida-server --header=$(IntDir)frida-server.h --symbols=$(IntDir)frida-server.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ValaCompiler);$(ProjectDir)server\server.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(ValaCompiler)" server/server.vala --ccode --directory=$(IntDir) --library=frida-server --header=$(IntDir)frida-server.h --symbols=$(IntDir)frida-server.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ValaCompiler);$(ProjectDir)server\server.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(ValaCompiler)" server/server.vala --ccode --directory=$(IntDir) --library=frida-server --header=$(IntDir)frida-server.h --symbols=$(IntDir)frida-server.symbols --vapidir="$(IntDir)..\frida-core" --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-helper-backend-32" --vapidir="$(IntDir)..\frida-helper-backend-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg config --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-core --pkg=frida-base --pkg=frida-helper-backend --pkg=posix || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling vala code</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ValaCompiler);$(ProjectDir)server\server.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="frida-core.vcxproj">
|
||||
<Project>{b7dc9b02-a5ff-4aa1-b2a2-dc1653168d44}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)server\server.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)server\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)server\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)server\</ObjectFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)server\</ObjectFileName>
|
||||
</ClCompile>
|
||||
<ClCompile Include="server\server-glue.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{f60b305c-bd28-4f2c-9c4c-cbabeb0c2142}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="server\server.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
<ClCompile Include="server\server-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)server\server.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
+5
-16
@@ -13,36 +13,25 @@ extra_link_args = []
|
||||
extra_link_depends = []
|
||||
if host_os_family == 'darwin'
|
||||
symlist = 'frida-inject.symbols'
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + join_paths(meson.current_source_dir(), symlist)]
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + meson.current_source_dir() / symlist]
|
||||
extra_link_depends += [symlist]
|
||||
elif host_os_family != 'windows'
|
||||
symscript = 'frida-inject.version'
|
||||
extra_link_args += ['-Wl,--version-script,' + join_paths(meson.current_source_dir(), symscript)]
|
||||
extra_link_args += ['-Wl,--version-script,' + meson.current_source_dir() / symscript]
|
||||
extra_link_depends += [symscript]
|
||||
endif
|
||||
|
||||
raw_inject = executable('frida-inject-raw', inject_sources,
|
||||
vala_args: system_vala_args,
|
||||
vala_args: [core_vala_args, system_vala_args],
|
||||
link_args: extra_link_args,
|
||||
link_depends: extra_link_depends,
|
||||
dependencies: [json_glib_dep, core_dep],
|
||||
)
|
||||
|
||||
custom_target('frida-inject',
|
||||
input: [
|
||||
raw_inject,
|
||||
'frida-inject.xcent',
|
||||
],
|
||||
input: [raw_inject, 'frida-inject.xcent'],
|
||||
output: 'frida-inject' + exe_suffix,
|
||||
command: [
|
||||
files('post-process.sh'),
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
host_os,
|
||||
'>>>', strip, '<<<',
|
||||
get_option('strip').to_string(),
|
||||
codesign,
|
||||
],
|
||||
command: post_process + ['executable', 're.frida.Inject', '@INPUT1@'],
|
||||
install: true,
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
input_inject_path=$1
|
||||
input_entitlements_path=$2
|
||||
output_inject_path=$3
|
||||
host_os=$4
|
||||
strip_command=()
|
||||
if [ "$5" = ">>>" ]; then
|
||||
shift 5
|
||||
while true; do
|
||||
cur=$1
|
||||
shift 1
|
||||
if [ "$cur" = "<<<" ]; then
|
||||
break
|
||||
fi
|
||||
strip_command+=("$cur")
|
||||
done
|
||||
else
|
||||
echo "Invalid argument" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
strip_enabled=$1
|
||||
codesign=$2
|
||||
|
||||
case $host_os in
|
||||
macos)
|
||||
if [ -z "$MACOS_CERTID" ]; then
|
||||
echo "MACOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
ios)
|
||||
if [ -z "$IOS_CERTID" ]; then
|
||||
echo "IOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
tvos)
|
||||
if [ -z "$TVOS_CERTID" ]; then
|
||||
echo "TVOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
intermediate_path=$output_inject_path.tmp
|
||||
rm -f "$intermediate_path"
|
||||
cp -a "$input_inject_path" "$intermediate_path"
|
||||
|
||||
if [ "$strip_enabled" = "true" ]; then
|
||||
"${strip_command[@]}" "$intermediate_path" || exit 1
|
||||
fi
|
||||
|
||||
case $host_os in
|
||||
macos|ios|tvos)
|
||||
case $host_os in
|
||||
macos)
|
||||
"$codesign" -f -s "$MACOS_CERTID" -i "re.frida.Inject" "$intermediate_path" || exit 1
|
||||
;;
|
||||
ios)
|
||||
"$codesign" -f -s "$IOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
tvos)
|
||||
"$codesign" -f -s "$TVOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
mv "$intermediate_path" "$output_inject_path"
|
||||
@@ -81,7 +81,7 @@ namespace Frida.Agent {
|
||||
|
||||
private uint child_gating_subscriber_count = 0;
|
||||
private ForkMonitor? fork_monitor;
|
||||
private FileDescriptorGuard fd_guard;
|
||||
private FileDescriptorGuard? fd_guard;
|
||||
private ThreadCountCloaker? thread_count_cloaker;
|
||||
private ThreadListCloaker? thread_list_cloaker;
|
||||
private FDListCloaker? fd_list_cloaker;
|
||||
@@ -99,6 +99,7 @@ namespace Frida.Agent {
|
||||
private Cond transition_cond;
|
||||
private SpawnMonitor? spawn_monitor;
|
||||
private ThreadSuspendMonitor? thread_suspend_monitor;
|
||||
private UnwindSitter? unwind_sitter;
|
||||
|
||||
private delegate void CompletionNotify ();
|
||||
|
||||
@@ -148,7 +149,6 @@ namespace Frida.Agent {
|
||||
linjector_state->agent_ctrlfd = -1;
|
||||
|
||||
fdt_padder.move_descriptor_if_needed (ref agent_ctrlfd);
|
||||
Gum.Cloak.add_file_descriptor (agent_ctrlfd);
|
||||
|
||||
agent_parameters_with_transport_uri = "socket:%d%s".printf (agent_ctrlfd, agent_parameters);
|
||||
agent_parameters = agent_parameters_with_transport_uri;
|
||||
@@ -259,6 +259,7 @@ namespace Frida.Agent {
|
||||
interceptor.begin_transaction ();
|
||||
|
||||
thread_suspend_monitor = null;
|
||||
unwind_sitter = null;
|
||||
|
||||
invalidate_dbus_context ();
|
||||
|
||||
@@ -287,6 +288,7 @@ namespace Frida.Agent {
|
||||
#endif
|
||||
bool enable_exit_monitor = true;
|
||||
bool enable_thread_suspend_monitor = true;
|
||||
bool enable_unwind_sitter = true;
|
||||
foreach (unowned string option in tokens[1:]) {
|
||||
if (option == "eternal")
|
||||
ensure_eternalized ();
|
||||
@@ -298,6 +300,8 @@ namespace Frida.Agent {
|
||||
enable_exit_monitor = false;
|
||||
else if (option == "thread-suspend-monitor:off")
|
||||
enable_thread_suspend_monitor = false;
|
||||
else if (option == "unwind-sitter:off")
|
||||
enable_unwind_sitter = false;
|
||||
}
|
||||
|
||||
if (!enable_exceptor)
|
||||
@@ -313,6 +317,9 @@ namespace Frida.Agent {
|
||||
if (enable_thread_suspend_monitor)
|
||||
thread_suspend_monitor = new ThreadSuspendMonitor (this);
|
||||
|
||||
if (enable_unwind_sitter)
|
||||
unwind_sitter = new UnwindSitter (this);
|
||||
|
||||
this.interceptor = interceptor;
|
||||
this.exceptor = Gum.Exceptor.obtain ();
|
||||
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F4F9AF1C-3111-4563-8066-8FAE8CBEFBDC}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-agent-32</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-payload-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<ModuleDefinitionFile>frida-agent.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;$(IntDir)..\frida-pipe-32;$(IntDir)..\frida-payload-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<ModuleDefinitionFile>frida-agent.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-agent-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\frida-gum\bindings\gumjs\gumjs-32.vcxproj">
|
||||
<Project>{8381538f-3cb5-480b-bfa4-960299af6485}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\frida-gum\gum-32.vcxproj">
|
||||
<Project>{b31c7d42-54b6-49bb-b30c-11745c48b062}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\base\frida-base-32.vcxproj">
|
||||
<Project>{c4203124-c838-437b-8662-ca477b146655}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\payload\frida-payload-32.vcxproj">
|
||||
<Project>{26f21663-d1b3-46e4-acb6-115ed9ce086c}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\pipe\frida-pipe-32.vcxproj">
|
||||
<Project>{4c39c3cf-13e5-4346-b6ae-f73013105936}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{0353eb66-cd17-403a-ac99-dcf4a5709318}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)agent.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="agent-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="agent.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,112 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{D873638D-AA0D-4252-9334-456557A65D95}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-agent-64</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-payload-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<ModuleDefinitionFile>frida-agent.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;$(IntDir)..\frida-pipe-64;$(IntDir)..\frida-payload-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<ModuleDefinitionFile>frida-agent.def</ModuleDefinitionFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-agent-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\frida-gum\bindings\gumjs\gumjs-64.vcxproj">
|
||||
<Project>{0b39885e-731c-4a45-a7de-44cbdbbf0067}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\frida-gum\gum-64.vcxproj">
|
||||
<Project>{dc30a450-95bc-4476-a2f9-45100562424e}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\base\frida-base-64.vcxproj">
|
||||
<Project>{a31522d9-715b-4e04-aa57-df7afebe082c}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\payload\frida-payload-64.vcxproj">
|
||||
<Project>{26ccf317-ace8-4cd6-bdde-ffed1aa2fadd}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\pipe\frida-pipe-64.vcxproj">
|
||||
<Project>{d50f460f-9c4d-42eb-a8c4-48c0c46cfaaf}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{ae68f2cc-7b74-44ad-addd-3d447d9b2a4e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)agent.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="agent-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="agent.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="agent.vala">
|
||||
<Message>Compiling vala code</Message>
|
||||
<Command>"$(ValaCompiler)" agent.vala --ccode --directory=$(IntDir) --library=frida-agent --header=$(IntDir)frida-agent.h --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --vapidir="$(IntDir)..\frida-pipe-32" --vapidir="$(IntDir)..\frida-pipe-64" --vapidir="$(IntDir)..\frida-payload-32" --vapidir="$(IntDir)..\frida-payload-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg=glib-2.0 --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base --pkg=frida-pipe --pkg=frida-payload || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs>$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs>$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)agent.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="agent-glue.c" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+34
-31
@@ -20,14 +20,16 @@ if host_os_family == 'darwin'
|
||||
endif
|
||||
|
||||
if host_os_family == 'windows'
|
||||
symfile = (host_arch == 'x86') ? 'frida-agent-x86.symbols' : 'frida-agent.symbols'
|
||||
extra_link_args += '-Wl,--retain-symbols-file,' + (meson.current_source_dir() / symfile)
|
||||
extra_link_depends += symfile
|
||||
if host_toolchain != 'microsoft'
|
||||
symfile = (host_arch == 'x86') ? 'frida-agent-x86.symbols' : 'frida-agent.symbols'
|
||||
extra_link_args += '-Wl,--retain-symbols-file,' + meson.current_source_dir() / symfile
|
||||
extra_link_depends += symfile
|
||||
endif
|
||||
elif host_os_family == 'darwin'
|
||||
extra_link_args += '-Wl,-exported_symbol,_frida_agent_main'
|
||||
else
|
||||
symscript = 'frida-agent.version'
|
||||
extra_link_args += '-Wl,--version-script,' + (meson.current_source_dir() / symscript)
|
||||
extra_link_args += '-Wl,--version-script,' + meson.current_source_dir() / symscript
|
||||
extra_link_depends += symscript
|
||||
endif
|
||||
|
||||
@@ -36,10 +38,11 @@ if host_os_family in ['linux', 'qnx']
|
||||
extra_link_args += '-Wl,-Bsymbolic'
|
||||
endif
|
||||
|
||||
raw_agent = shared_library('frida-agent', agent_sources,
|
||||
raw_agent = shared_library('frida-agent-raw', agent_sources,
|
||||
name_prefix: 'lib',
|
||||
c_args: frida_component_cflags,
|
||||
vala_args: extra_vala_args,
|
||||
vala_header: 'frida-agent.h',
|
||||
vala_args: [base_vala_args, payload_vala_args, extra_vala_args],
|
||||
link_args: extra_link_args,
|
||||
link_depends: extra_link_depends,
|
||||
vs_module_defs: 'frida-agent.def',
|
||||
@@ -51,45 +54,45 @@ operations = ['--move', 'constructor', 'frida_init_memory', 'first']
|
||||
if host_os_family != 'darwin'
|
||||
operations += ['--move', 'destructor', 'frida_deinit_memory', 'first']
|
||||
endif
|
||||
|
||||
if host_machine.endian() == 'little'
|
||||
endian_option = ['--endian', 'little']
|
||||
else
|
||||
endian_option = ['--endian', 'big']
|
||||
endif
|
||||
|
||||
modulated_agent = custom_target('frida-agent-modulated',
|
||||
input: raw_agent,
|
||||
output: 'libfrida-agent-modulated' + shlib_suffix,
|
||||
command: [
|
||||
modulate,
|
||||
'@INPUT@',
|
||||
] + operations + endian_option + [
|
||||
'--output', '@OUTPUT@',
|
||||
'--nm', nm,
|
||||
'--readelf', readelf,
|
||||
'--otool', otool,
|
||||
],
|
||||
command: modulate + operations,
|
||||
)
|
||||
|
||||
need_universal_agent = host_os_family == 'darwin' \
|
||||
and get_option('assets') == 'installed' \
|
||||
and agent_compat != ''
|
||||
|
||||
if host_os_family == 'darwin'
|
||||
identity = 'FridaAgent'
|
||||
else
|
||||
identity = agent_name
|
||||
endif
|
||||
|
||||
agent = custom_target('frida-agent',
|
||||
input: modulated_agent,
|
||||
output: agent_name,
|
||||
command: [
|
||||
post_process_module,
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
identity,
|
||||
],
|
||||
output: need_universal_agent ? f'@agent_name@-@host_abi@' : agent_name,
|
||||
command: post_process + ['shared-library', identity],
|
||||
build_by_default: true,
|
||||
install: get_option('assets') == 'installed',
|
||||
install: get_option('assets') == 'installed' and not need_universal_agent,
|
||||
install_dir: asset_dir,
|
||||
)
|
||||
|
||||
agent_dep = declare_dependency(link_with: agent)
|
||||
|
||||
if need_universal_agent
|
||||
custom_target('frida-agent-universal',
|
||||
input: agent,
|
||||
output: agent_name,
|
||||
command: [
|
||||
lipo,
|
||||
'@INPUT@',
|
||||
agent_compat,
|
||||
'-create',
|
||||
'-output', meson.current_build_dir() / agent_name,
|
||||
],
|
||||
depends: agent_depends,
|
||||
install: true,
|
||||
install_dir: asset_dir,
|
||||
)
|
||||
endif
|
||||
+23
-12
@@ -1,11 +1,11 @@
|
||||
namespace Frida {
|
||||
public class BufferBuilder : Object {
|
||||
public uint pointer_size {
|
||||
public ByteOrder byte_order {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
|
||||
public ByteOrder byte_order {
|
||||
public uint pointer_size {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
@@ -23,10 +23,10 @@ namespace Frida {
|
||||
private Gee.List<LabelRef>? label_refs;
|
||||
private Gee.Map<string, uint>? label_defs;
|
||||
|
||||
public BufferBuilder (uint pointer_size = (uint) sizeof (size_t), ByteOrder byte_order = HOST) {
|
||||
public BufferBuilder (ByteOrder byte_order = HOST, uint pointer_size = (uint) sizeof (size_t)) {
|
||||
Object (
|
||||
pointer_size: pointer_size,
|
||||
byte_order: byte_order
|
||||
byte_order: byte_order,
|
||||
pointer_size: pointer_size
|
||||
);
|
||||
}
|
||||
|
||||
@@ -313,12 +313,12 @@ namespace Frida {
|
||||
construct;
|
||||
}
|
||||
|
||||
public uint pointer_size {
|
||||
public ByteOrder byte_order {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
|
||||
public ByteOrder byte_order {
|
||||
public uint pointer_size {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
@@ -326,11 +326,11 @@ namespace Frida {
|
||||
private unowned uint8 * data;
|
||||
private size_t size;
|
||||
|
||||
public Buffer (Bytes bytes, uint pointer_size, ByteOrder byte_order) {
|
||||
public Buffer (Bytes bytes, ByteOrder byte_order = HOST, uint pointer_size = (uint) sizeof (size_t)) {
|
||||
Object (
|
||||
bytes: bytes,
|
||||
pointer_size: pointer_size,
|
||||
byte_order: byte_order
|
||||
byte_order: byte_order,
|
||||
pointer_size: pointer_size
|
||||
);
|
||||
}
|
||||
|
||||
@@ -429,9 +429,20 @@ namespace Frida {
|
||||
}
|
||||
|
||||
public string read_string (size_t offset) {
|
||||
string * val = (string *) get_pointer (offset, sizeof (char));
|
||||
size_t max_length = size - offset;
|
||||
return val->substring (0, (long) max_length);
|
||||
string * val = (string *) get_pointer (offset, sizeof (char));
|
||||
string * end = memchr (val, 0, max_length);
|
||||
assert (end != null);
|
||||
size_t size = end - val;
|
||||
return val->substring (0, (long) size);
|
||||
}
|
||||
|
||||
[CCode (cname = "memchr", cheader_filename = "string.h")]
|
||||
private extern static string * memchr (string * s, int c, size_t n);
|
||||
|
||||
public string read_fixed_string (size_t offset, size_t size) {
|
||||
string * val = (string *) get_pointer (offset, size);
|
||||
return val->substring (0, (long) size);
|
||||
}
|
||||
|
||||
public unowned Buffer write_string (size_t offset, string val) {
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{C4203124-C838-437B-8662-CA477B146655}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-base-32</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-base-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,85 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{e96fc7f6-bddd-4322-8836-d9af8b731269}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{ca976c61-371a-4de5-b837-a8bd8857bc13}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)session.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="p2p-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="socket-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)dbus.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)p2p.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)promise.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)rpc.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)socket.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)buffer.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="session-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="session.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-base.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="dbus.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="p2p.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="promise.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="rpc.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="socket.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="buffer.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,77 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A31522D9-715B-4E04-AA57-DF7AFEBE082C}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-base-64</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-base-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,85 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{6c15c760-cd5b-41c4-ad64-83283571aeaf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{984e0fc8-e24c-4868-a432-6dd66cc7db4d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)session.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)dbus.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)p2p.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)promise.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)rpc.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)socket.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)buffer.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="p2p-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="socket-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="session-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="session.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-base.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="dbus.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="p2p.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="promise.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="rpc.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="socket.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="buffer.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,79 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;$(FridaCoreDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="session.vala">
|
||||
<Message>Compiling vala code</Message>
|
||||
<Command>"$(ValaCompiler)" session.vala rpc.vala p2p.vala dbus.vala promise.vala socket.vala buffer.vala --ccode --directory=$(IntDir) --library=frida-base --header=$(IntDir)frida-base.h $(ValaFlags) $(FridaCoreValaFlags) --pkg=gio-2.0 --pkg=libsoup-3.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs>$(ValaCompiler);rpc.vala;p2p.vala;dbus.vala;promise.vala;socket.vala;buffer.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs>$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<None Include="rpc.vala" />
|
||||
<None Include="p2p.vala" />
|
||||
<None Include="dbus.vala" />
|
||||
<None Include="promise.vala" />
|
||||
<None Include="socket.vala" />
|
||||
<None Include="buffer.vala" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-base.h" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="session-glue.c" />
|
||||
<ClCompile Include="$(IntDir)rpc.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)p2p.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="p2p-glue.c" />
|
||||
<ClCompile Include="$(IntDir)dbus.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)promise.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)socket.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="socket-glue.c" />
|
||||
<ClCompile Include="$(IntDir)buffer.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+13
-2
@@ -11,13 +11,21 @@ base_sources = [
|
||||
'buffer.vala',
|
||||
]
|
||||
|
||||
extra_vala_args = []
|
||||
extra_deps = []
|
||||
if host_os_family != 'windows'
|
||||
extra_deps += [gio_unix_dep]
|
||||
extra_vala_args += '--pkg=gio-unix-2.0'
|
||||
extra_deps += gio_unix_dep
|
||||
endif
|
||||
|
||||
base_vala_args = [gum_vala_args, '--pkg=gio-2.0', '--pkg=json-glib-1.0']
|
||||
if nice_dep.found()
|
||||
base_vala_args += '--pkg=nice'
|
||||
endif
|
||||
|
||||
base = static_library('frida-base-' + api_version, base_sources,
|
||||
c_args: frida_component_cflags,
|
||||
vala_args: [base_vala_args, '--pkg=libsoup-3.0'] + extra_vala_args,
|
||||
vala_header: 'frida-base.h',
|
||||
vala_vapi: f'frida-base-@[email protected]',
|
||||
dependencies: [glib_dep, gobject_dep, gio_dep, libsoup_dep, nice_dep, usrsctp_dep, gee_dep, json_glib_dep, gum_dep, openssl_dep] + extra_deps,
|
||||
@@ -35,5 +43,8 @@ base_build_dir = meson.current_build_dir()
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(base,
|
||||
description: 'Frida base library',
|
||||
filebase: f'frida-base-@api_version@',
|
||||
name: 'Frida Base Library',
|
||||
version: frida_version,
|
||||
description: 'Basic building blocks',
|
||||
)
|
||||
+1
-1
@@ -59,7 +59,7 @@ _frida_generate_certificate (guint8 ** cert_der, gint * cert_der_length, gchar *
|
||||
bio = BIO_new (BIO_s_mem ());
|
||||
i2d_X509_bio (bio, x509);
|
||||
n = BIO_get_mem_data (bio, (guint8 **) &der);
|
||||
*cert_der = g_memdup (der, n);
|
||||
*cert_der = g_memdup2 (der, n);
|
||||
*cert_der_length = n;
|
||||
BIO_free (g_steal_pointer (&bio));
|
||||
|
||||
|
||||
+2
-2
@@ -447,7 +447,7 @@ namespace Frida {
|
||||
_pending_io = condition;
|
||||
|
||||
foreach (var entry in sources.entries) {
|
||||
Source source = entry.key;
|
||||
unowned Source source = entry.key;
|
||||
IOCondition c = entry.value;
|
||||
if ((_pending_io & c) != 0)
|
||||
source.set_ready_time (0);
|
||||
@@ -825,7 +825,7 @@ namespace Frida {
|
||||
sctp_events = new_events;
|
||||
|
||||
foreach (var entry in sources.entries) {
|
||||
Source source = entry.key;
|
||||
unowned Source source = entry.key;
|
||||
IOCondition c = entry.value;
|
||||
if ((new_events & c) != 0)
|
||||
source.set_ready_time (0);
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
#if defined (HAVE_WINDOWS)
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
gchar *
|
||||
_frida_query_windows_version (void)
|
||||
{
|
||||
|
||||
+22
-3
@@ -150,6 +150,11 @@ namespace Frida {
|
||||
public signal void new_candidates (string[] candidate_sdps);
|
||||
public signal void candidate_gathering_done ();
|
||||
|
||||
public weak AgentSession agent_session {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
|
||||
public uint persist_timeout {
|
||||
get;
|
||||
construct;
|
||||
@@ -198,8 +203,10 @@ namespace Frida {
|
||||
INTERRUPTED
|
||||
}
|
||||
|
||||
public AgentMessageTransmitter (uint persist_timeout, MainContext frida_context, MainContext dbus_context) {
|
||||
public AgentMessageTransmitter (AgentSession agent_session, uint persist_timeout, MainContext frida_context,
|
||||
MainContext dbus_context) {
|
||||
Object (
|
||||
agent_session: agent_session,
|
||||
persist_timeout: persist_timeout,
|
||||
frida_context: frida_context,
|
||||
dbus_context: dbus_context
|
||||
@@ -500,8 +507,7 @@ namespace Frida {
|
||||
nice_connection.on_closed.connect (on_nice_connection_closed);
|
||||
|
||||
try {
|
||||
nice_registration_id = nice_connection.register_object (ObjectPath.AGENT_SESSION,
|
||||
(AgentSession) this);
|
||||
nice_registration_id = nice_connection.register_object (ObjectPath.AGENT_SESSION, agent_session);
|
||||
} catch (IOError io_error) {
|
||||
assert_not_reached ();
|
||||
}
|
||||
@@ -2071,4 +2077,17 @@ namespace Frida {
|
||||
return klass.get_value (val).value_nick;
|
||||
}
|
||||
}
|
||||
|
||||
namespace Numeric {
|
||||
public uint uint64_hash (uint64? val) {
|
||||
uint64 v = val;
|
||||
return (uint) ((v >> 32) ^ (v & 0xffffffffU));
|
||||
}
|
||||
|
||||
public bool uint64_equal (uint64? val_a, uint64? val_b) {
|
||||
uint64 a = val_a;
|
||||
uint64 b = val_b;
|
||||
return a == b;
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
-10
@@ -384,7 +384,7 @@ namespace Frida {
|
||||
|
||||
File location = endpoint_params.asset_root.resolve_relative_path (path.next_char ());
|
||||
|
||||
server.pause_message (msg);
|
||||
msg.pause ();
|
||||
handle_asset_request.begin (path, location, msg);
|
||||
}
|
||||
|
||||
@@ -420,7 +420,7 @@ namespace Frida {
|
||||
stream = yield file.read_async (priority, io_cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
msg.set_status (Soup.Status.NOT_FOUND, null);
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -504,7 +504,7 @@ namespace Frida {
|
||||
}
|
||||
} catch (GLib.Error e) {
|
||||
msg.set_status (Soup.Status.NOT_FOUND, null);
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -520,7 +520,7 @@ namespace Frida {
|
||||
msg.set_response ("text/html", Soup.MemoryUse.COPY, listing.str.data);
|
||||
}
|
||||
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
}
|
||||
|
||||
private async void handle_file_request (File file, FileInfo info, FileInputStream stream, Soup.ServerMessage msg) {
|
||||
@@ -531,7 +531,7 @@ namespace Frida {
|
||||
headers.replace ("Content-Length", info.get_size ().to_string ());
|
||||
|
||||
if (msg.get_method () == "HEAD") {
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -563,7 +563,7 @@ namespace Frida {
|
||||
|
||||
body.append_take (buffer[0:n]);
|
||||
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
|
||||
waiting = true;
|
||||
yield;
|
||||
@@ -572,13 +572,13 @@ namespace Frida {
|
||||
if (finished)
|
||||
break;
|
||||
|
||||
server.pause_message (msg);
|
||||
msg.pause ();
|
||||
}
|
||||
} finally {
|
||||
msg.disconnect (write_handler);
|
||||
msg.disconnect (finished_handler);
|
||||
if (!finished)
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -601,7 +601,7 @@ namespace Frida {
|
||||
msg.set_response ("text/html", Soup.MemoryUse.COPY, body.data);
|
||||
}
|
||||
|
||||
server.unpause_message (msg);
|
||||
msg.unpause ();
|
||||
}
|
||||
|
||||
private static string guess_mime_type_for (string path) {
|
||||
@@ -848,7 +848,7 @@ namespace Frida {
|
||||
_pending_io = new_io;
|
||||
|
||||
foreach (var entry in sources.entries) {
|
||||
Source source = entry.key;
|
||||
unowned Source source = entry.key;
|
||||
IOCondition c = entry.value;
|
||||
if ((new_io & c) != 0)
|
||||
source.set_ready_time (0);
|
||||
|
||||
@@ -841,6 +841,7 @@ namespace Frida.Gadget {
|
||||
|
||||
private ExitMonitor exit_monitor;
|
||||
private ThreadSuspendMonitor thread_suspend_monitor;
|
||||
private UnwindSitter unwind_sitter;
|
||||
|
||||
private Gum.ScriptBackend? qjs_backend;
|
||||
private Gum.ScriptBackend? v8_backend;
|
||||
@@ -852,6 +853,7 @@ namespace Frida.Gadget {
|
||||
construct {
|
||||
exit_monitor = new ExitMonitor (this, MainContext.default ());
|
||||
thread_suspend_monitor = new ThreadSuspendMonitor (this);
|
||||
unwind_sitter = new UnwindSitter (this);
|
||||
}
|
||||
|
||||
public async void start () throws Error, IOError {
|
||||
|
||||
+38
-35
@@ -14,11 +14,13 @@ endif
|
||||
|
||||
platform_deps = []
|
||||
|
||||
extra_vala_args = []
|
||||
extra_objc_args = []
|
||||
extra_link_args = []
|
||||
extra_link_depends = []
|
||||
|
||||
if host_os_family != 'windows'
|
||||
extra_vala_args += '--pkg=gio-unix-2.0'
|
||||
platform_deps += gio_unix_dep
|
||||
endif
|
||||
|
||||
@@ -28,16 +30,18 @@ if host_os_family == 'darwin'
|
||||
endif
|
||||
|
||||
if host_os_family == 'windows'
|
||||
symfile = 'frida-gadget.symbols'
|
||||
extra_link_args += '-Wl,--retain-symbols-file,' + (meson.current_source_dir() / symfile)
|
||||
extra_link_depends += symfile
|
||||
if host_toolchain != 'microsoft'
|
||||
symfile = 'frida-gadget.symbols'
|
||||
extra_link_args += '-Wl,--retain-symbols-file,' + meson.current_source_dir() / symfile
|
||||
extra_link_depends += symfile
|
||||
endif
|
||||
elif host_os_family == 'darwin'
|
||||
symlist = 'frida-gadget.symbols'
|
||||
extra_link_args += '-Wl,-exported_symbols_list,' + (meson.current_source_dir() / symlist)
|
||||
extra_link_args += '-Wl,-exported_symbols_list,' + meson.current_source_dir() / symlist
|
||||
extra_link_depends += symlist
|
||||
else
|
||||
symscript = 'frida-gadget.version'
|
||||
extra_link_args += '-Wl,--version-script,' + (meson.current_source_dir() / symscript)
|
||||
extra_link_args += '-Wl,--version-script,' + meson.current_source_dir() / symscript
|
||||
extra_link_depends += symscript
|
||||
endif
|
||||
|
||||
@@ -46,8 +50,10 @@ if host_os_family in ['linux', 'qnx']
|
||||
extra_link_args += ['-Wl,-Bsymbolic']
|
||||
endif
|
||||
|
||||
raw_gadget = shared_library('frida-gadget', gadget_sources,
|
||||
raw_gadget = shared_library('frida-gadget-raw', gadget_sources,
|
||||
name_prefix: 'lib',
|
||||
vala_args: [base_vala_args, payload_vala_args, extra_vala_args],
|
||||
vala_header: 'frida-gadget.h',
|
||||
c_args: frida_component_cflags,
|
||||
objc_args: extra_objc_args,
|
||||
link_args: extra_link_args,
|
||||
@@ -67,30 +73,14 @@ if host_os_family != 'darwin'
|
||||
'--move', 'destructor', 'frida_on_unload', 'last',
|
||||
]
|
||||
endif
|
||||
if get_option('strip')
|
||||
operations += ['--strip', '>>>', strip, '<<<']
|
||||
endif
|
||||
|
||||
if host_machine.endian() == 'little'
|
||||
endian_option = ['--endian', 'little']
|
||||
else
|
||||
endian_option = ['--endian', 'big']
|
||||
endif
|
||||
|
||||
modulated_gadget = custom_target('frida-gadget-modulated',
|
||||
input: raw_gadget,
|
||||
output: 'libfrida-gadget-modulated' + shlib_suffix,
|
||||
command: [
|
||||
modulate,
|
||||
'@INPUT@',
|
||||
] + operations + endian_option + [
|
||||
'--output', '@OUTPUT@',
|
||||
'--nm', nm,
|
||||
'--readelf', readelf,
|
||||
'--otool', otool,
|
||||
],
|
||||
command: modulate + operations,
|
||||
)
|
||||
|
||||
need_universal_gadget = host_os_family == 'darwin' and gadget_compat != ''
|
||||
|
||||
if host_os == 'macos'
|
||||
identity = '@executable_path/../Frameworks/FridaGadget.dylib'
|
||||
elif host_os in ['ios', 'tvos']
|
||||
@@ -98,16 +88,29 @@ elif host_os in ['ios', 'tvos']
|
||||
else
|
||||
identity = gadget_name
|
||||
endif
|
||||
|
||||
custom_target('frida-gadget',
|
||||
gadget_for_host_arch = custom_target('frida-gadget',
|
||||
input: modulated_gadget,
|
||||
output: gadget_name,
|
||||
command: [
|
||||
post_process_module,
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
identity,
|
||||
],
|
||||
install: true,
|
||||
output: need_universal_gadget ? f'@gadget_name@-@host_abi@' : gadget_name,
|
||||
command: post_process + ['shared-library', identity],
|
||||
install: not need_universal_gadget,
|
||||
install_dir: asset_dir,
|
||||
)
|
||||
|
||||
if need_universal_gadget
|
||||
gadget = custom_target('frida-gadget-universal',
|
||||
input: gadget_for_host_arch,
|
||||
output: gadget_name,
|
||||
command: [
|
||||
lipo,
|
||||
'@INPUT@',
|
||||
gadget_compat,
|
||||
'-create',
|
||||
'-output', meson.current_build_dir() / gadget_name,
|
||||
],
|
||||
depends: gadget_depends,
|
||||
install: true,
|
||||
install_dir: asset_dir,
|
||||
)
|
||||
else
|
||||
gadget = gadget_for_host_arch
|
||||
endif
|
||||
+6
-2
@@ -4,5 +4,9 @@ endif
|
||||
subdir('base')
|
||||
subdir('pipe')
|
||||
subdir('payload')
|
||||
subdir('agent')
|
||||
subdir('gadget')
|
||||
if have_local_backend
|
||||
subdir('agent')
|
||||
endif
|
||||
if build_gadget
|
||||
subdir('gadget')
|
||||
endif
|
||||
@@ -50,7 +50,7 @@ namespace Frida {
|
||||
script_engine.message_from_script.connect (on_message_from_script);
|
||||
script_engine.message_from_debugger.connect (on_message_from_debugger);
|
||||
|
||||
transmitter = new AgentMessageTransmitter (persist_timeout, frida_context, dbus_context);
|
||||
transmitter = new AgentMessageTransmitter (this, persist_timeout, frida_context, dbus_context);
|
||||
transmitter.closed.connect (on_transmitter_closed);
|
||||
transmitter.new_candidates.connect (on_transmitter_new_candidates);
|
||||
transmitter.candidate_gathering_done.connect (on_transmitter_candidate_gathering_done);
|
||||
|
||||
@@ -216,34 +216,34 @@ namespace Frida {
|
||||
|
||||
var open_listener = new OpenDirListener (this);
|
||||
listeners.add (open_listener);
|
||||
interceptor.attach (Gum.Module.find_export_by_name (libc, "opendir"), open_listener);
|
||||
interceptor.attach ((void *) Gum.Module.find_export_by_name (libc, "opendir"), open_listener);
|
||||
|
||||
var close_listener = new CloseDirListener (this);
|
||||
listeners.add (close_listener);
|
||||
interceptor.attach (Gum.Module.find_export_by_name (libc, "closedir"), close_listener);
|
||||
interceptor.attach ((void *) Gum.Module.find_export_by_name (libc, "closedir"), close_listener);
|
||||
|
||||
var readdir_impl = Gum.Module.find_export_by_name (libc, "readdir");
|
||||
var readdir_listener = new ReadDirListener (this, LEGACY);
|
||||
listeners.add (readdir_listener);
|
||||
interceptor.attach (readdir_impl, readdir_listener);
|
||||
interceptor.attach ((void *) readdir_impl, readdir_listener);
|
||||
|
||||
var readdir64_impl = Gum.Module.find_export_by_name (libc, "readdir64");
|
||||
if (readdir64_impl != null && readdir64_impl != readdir_impl) {
|
||||
if (readdir64_impl != 0 && readdir64_impl != readdir_impl) {
|
||||
var listener = new ReadDirListener (this, MODERN);
|
||||
listeners.add (listener);
|
||||
interceptor.attach (readdir64_impl, listener);
|
||||
interceptor.attach ((void *) readdir64_impl, listener);
|
||||
}
|
||||
|
||||
var readdir_r_impl = Gum.Module.find_export_by_name (libc, "readdir_r");
|
||||
var readdir_r_listener = new ReadDirRListener (this, LEGACY);
|
||||
listeners.add (readdir_r_listener);
|
||||
interceptor.attach (readdir_r_impl, readdir_r_listener);
|
||||
interceptor.attach ((void *) readdir_r_impl, readdir_r_listener);
|
||||
|
||||
var readdir64_r_impl = Gum.Module.find_export_by_name (libc, "readdir64_r");
|
||||
if (readdir64_r_impl != null && readdir64_r_impl != readdir_r_impl) {
|
||||
if (readdir64_r_impl != 0 && readdir64_r_impl != readdir_r_impl) {
|
||||
var listener = new ReadDirRListener (this, MODERN);
|
||||
listeners.add (listener);
|
||||
interceptor.attach (readdir64_r_impl, listener);
|
||||
interceptor.attach ((void *) readdir64_r_impl, listener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Frida {
|
||||
unowned Gum.InvocationListener listener = this;
|
||||
|
||||
#if WINDOWS
|
||||
interceptor.attach (Gum.Module.find_export_by_name ("kernel32.dll", "ExitProcess"), listener);
|
||||
interceptor.attach ((void *) Gum.Module.find_export_by_name ("kernel32.dll", "ExitProcess"), listener);
|
||||
#else
|
||||
unowned string libc = Gum.Process.query_libc_name ();
|
||||
const string[] apis = {
|
||||
@@ -41,7 +41,7 @@ namespace Frida {
|
||||
"abort",
|
||||
};
|
||||
foreach (var symbol in apis) {
|
||||
interceptor.attach (Gum.Module.find_export_by_name (libc, symbol), listener);
|
||||
interceptor.attach ((void *) Gum.Module.find_export_by_name (libc, symbol), listener);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Frida {
|
||||
|
||||
var close = Gum.Module.find_export_by_name (Gum.Process.query_libc_name (), "close");
|
||||
close_listener = new CloseListener (this);
|
||||
interceptor.attach (close, close_listener);
|
||||
interceptor.attach ((void *) close, close_listener);
|
||||
}
|
||||
|
||||
~FileDescriptorGuard () {
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace Frida {
|
||||
int result = -1;
|
||||
#if LINUX
|
||||
do {
|
||||
result = Linux.dup3 (fd, pair[0], Posix.FD_CLOEXEC);
|
||||
result = LibcShim.dup3 (fd, pair[0], Posix.FD_CLOEXEC);
|
||||
} while (result == -1 && Posix.errno == Posix.EINTR);
|
||||
#else
|
||||
do {
|
||||
|
||||
@@ -46,8 +46,8 @@ namespace Frida {
|
||||
|
||||
static construct {
|
||||
unowned string libc = Gum.Process.query_libc_name ();
|
||||
fork_impl = Gum.Module.find_export_by_name (libc, "fork");
|
||||
vfork_impl = Gum.Module.find_export_by_name (libc, "vfork");
|
||||
fork_impl = (void *) Gum.Module.find_export_by_name (libc, "fork");
|
||||
vfork_impl = (void *) Gum.Module.find_export_by_name (libc, "vfork");
|
||||
}
|
||||
|
||||
construct {
|
||||
@@ -61,13 +61,13 @@ namespace Frida {
|
||||
string cmdline;
|
||||
FileUtils.get_contents ("/proc/self/cmdline", out cmdline);
|
||||
if (cmdline == "zygote" || cmdline == "zygote64" || cmdline == "usap32" || cmdline == "usap64") {
|
||||
var set_argv0 = Gum.Module.find_export_by_name ("libandroid_runtime.so", "_Z27android_os_Process_setArgV0P7_JNIEnvP8_jobjectP8_jstring");
|
||||
var set_argv0 = (void *) Gum.Module.find_export_by_name ("libandroid_runtime.so", "_Z27android_os_Process_setArgV0P7_JNIEnvP8_jobjectP8_jstring");
|
||||
if (set_argv0 != null) {
|
||||
interceptor.attach (set_argv0, listener, (void *) HookId.SET_ARGV0);
|
||||
child_recovery_behavior = DEFERRED_UNTIL_SET_ARGV0;
|
||||
}
|
||||
|
||||
var setcontext = Gum.Module.find_export_by_name ("libselinux.so", "selinux_android_setcontext");
|
||||
var setcontext = (void *) Gum.Module.find_export_by_name ("libselinux.so", "selinux_android_setcontext");
|
||||
if (setcontext != null)
|
||||
interceptor.attach (setcontext, listener, (void *) HookId.SET_CTX);
|
||||
}
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{26F21663-D1B3-46E4-ACB6-115ED9CE086C}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-payload-32</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-payload-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\frida-gum\bindings\gumjs\gumjs-32.vcxproj">
|
||||
<Project>{8381538f-3cb5-480b-bfa4-960299af6485}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\frida-gum\gum-32.vcxproj">
|
||||
<Project>{b31c7d42-54b6-49bb-b30c-11745c48b062}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,112 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{e96fc7f6-bddd-4322-8836-d9af8b731269}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{ca976c61-371a-4de5-b837-a8bd8857bc13}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)process.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="process-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="spawn-monitor-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="thread-suspend-monitor-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="libc-shim.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)cloak.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)exit-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fd-guard.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fdt-padder.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fork-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)script-engine.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)spawn-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)thread-suspend-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)base-agent-session.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)portal-client.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="process.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-payload.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="cloak.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="exit-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fd-guard.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fdt-padder.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fork-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="script-engine.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="spawn-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="thread-suspend-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="base-agent-session.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="portal-client.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,90 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{26CCF317-ACE8-4CD6-BDDE-FFED1AA2FADD}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-payload-64</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-payload-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\frida-gum\bindings\gumjs\gumjs-64.vcxproj">
|
||||
<Project>{0b39885e-731c-4a45-a7de-44cbdbbf0067}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\frida-gum\gum-64.vcxproj">
|
||||
<Project>{dc30a450-95bc-4476-a2f9-45100562424e}</Project>
|
||||
<Private>false</Private>
|
||||
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,112 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{6c15c760-cd5b-41c4-ad64-83283571aeaf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{984e0fc8-e24c-4868-a432-6dd66cc7db4d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)process.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="process-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="spawn-monitor-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="thread-suspend-monitor-glue.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="libc-shim.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)cloak.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)exit-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fd-guard.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fdt-padder.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fork-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)script-engine.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)spawn-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)thread-suspend-monitor.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)base-agent-session.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)portal-client.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="process.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-payload.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="cloak.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="exit-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fd-guard.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fdt-padder.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="fork-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="script-engine.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="spawn-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="thread-suspend-monitor.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="base-agent-session.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
<None Include="portal-client.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,108 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="process.vala">
|
||||
<Message>Compiling vala code</Message>
|
||||
<Command>"$(ValaCompiler)" process.vala base-agent-session.vala script-engine.vala portal-client.vala fork-monitor.vala spawn-monitor.vala thread-suspend-monitor.vala exit-monitor.vala cloak.vala fd-guard.vala fdt-padder.vala --ccode --directory=$(IntDir) --library=frida-payload --header=$(IntDir)frida-payload.h --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" $(ValaFlags) $(FridaCoreValaFlags) --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-gum-1.0 --pkg=frida-gumjs-1.0 --pkg=frida-base || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs>$(ValaCompiler);base-agent-session.vala;script-engine.vala;portal-client.vala;fork-monitor.vala;spawn-monitor.vala;thread-suspend-monitor.vala;exit-monitor.vala;cloak.vala;fd-guard.vala;fdt-padder.vala;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs>$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<None Include="base-agent-session.vala" />
|
||||
<None Include="script-engine.vala" />
|
||||
<None Include="portal-client.vala" />
|
||||
<None Include="fork-monitor.vala" />
|
||||
<None Include="spawn-monitor.vala" />
|
||||
<None Include="thread-suspend-monitor.vala" />
|
||||
<None Include="exit-monitor.vala" />
|
||||
<None Include="cloak.vala" />
|
||||
<None Include="fd-guard.vala" />
|
||||
<None Include="fdt-padder.vala" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-payload.h" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)process.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="process-glue.c" />
|
||||
<ClCompile Include="$(IntDir)base-agent-session.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)script-engine.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)portal-client.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fork-monitor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)spawn-monitor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="spawn-monitor-glue.c" />
|
||||
<ClCompile Include="$(IntDir)thread-suspend-monitor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="thread-suspend-monitor-glue.c" />
|
||||
<ClCompile Include="$(IntDir)exit-monitor.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)cloak.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fd-guard.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)fdt-padder.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="libc-shim.c" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,4 +1,5 @@
|
||||
#define FRIDA_PRINTF_BUFFER_SIZE (512 * 1024)
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <errno.h>
|
||||
#include <gum/gum.h>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef __FRIDA_LIBC_SHIM_H__
|
||||
#define __FRIDA_LIBC_SHIM_H__
|
||||
|
||||
#ifdef HAVE_LINUX
|
||||
int dup3 (int oldfd, int newfd, int flags);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,6 @@
|
||||
[CCode (cheader_filename = "libc-shim.h", lower_case_cprefix = "", gir_namespace = "FridaLibcShim", gir_version = "1.0")]
|
||||
namespace Frida.LibcShim {
|
||||
#if LINUX
|
||||
public int dup3 (int oldfd, int newfd, int flags);
|
||||
#endif
|
||||
}
|
||||
+19
-3
@@ -9,6 +9,8 @@ payload_sources = [
|
||||
'spawn-monitor-glue.c',
|
||||
'thread-suspend-monitor.vala',
|
||||
'thread-suspend-monitor-glue.c',
|
||||
'unwind-sitter.vala',
|
||||
'unwind-sitter-glue.c',
|
||||
'exit-monitor.vala',
|
||||
'cloak.vala',
|
||||
'fd-guard.vala',
|
||||
@@ -20,20 +22,31 @@ if host_os_family == 'linux'
|
||||
payload_sources += 'syscall-linux-@[email protected]'.format(host_arch)
|
||||
endif
|
||||
|
||||
extra_c_args = []
|
||||
extra_vala_args = []
|
||||
if host_os_family != 'windows'
|
||||
extra_vala_args += ['--pkg=posix']
|
||||
endif
|
||||
if host_os_family == 'darwin'
|
||||
# FIXME: Remove this once glib-2.0.vapi provides a GLib.Private binding not involving deprecated APIs.
|
||||
extra_c_args += ['-UGLIB_VERSION_MIN_REQUIRED', '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_30']
|
||||
extra_vala_args += ['--pkg=frida-gum-darwin-1.0']
|
||||
endif
|
||||
if host_os_family == 'linux'
|
||||
extra_vala_args += ['--pkg=linux']
|
||||
endif
|
||||
|
||||
payload_vala_args = gum_vala_args + gumjs_vala_args
|
||||
|
||||
payload = static_library('frida-payload-' + api_version, payload_sources,
|
||||
c_args: frida_component_cflags,
|
||||
vala_args: extra_vala_args,
|
||||
c_args: [frida_component_cflags, extra_c_args],
|
||||
vala_args: [
|
||||
'--vapidir=' + meson.current_source_dir(),
|
||||
'--pkg=libc-shim',
|
||||
payload_vala_args,
|
||||
base_vala_args,
|
||||
extra_vala_args,
|
||||
],
|
||||
vala_header: 'frida-payload.h',
|
||||
vala_vapi: f'frida-payload-@[email protected]',
|
||||
dependencies: [gio_dep, gee_dep, json_glib_dep, gum_dep, gumjs_dep, base_dep],
|
||||
@@ -48,5 +61,8 @@ payload_dep = declare_dependency(
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(payload,
|
||||
description: 'Frida payload library intended for static linking into payloads',
|
||||
filebase: f'frida-payload-@api_version@',
|
||||
name: 'Frida Payload Library',
|
||||
version: frida_version,
|
||||
description: 'Building blocks commonly needed to implement payloads',
|
||||
)
|
||||
@@ -27,7 +27,7 @@ namespace Frida {
|
||||
|
||||
private void * execve;
|
||||
|
||||
private Private posix_spawn_caller_is_internal = new Private ();
|
||||
private static Private posix_spawn_caller_is_internal = new Private ();
|
||||
#endif
|
||||
|
||||
public SpawnMonitor (SpawnHandler handler, MainContext main_context) {
|
||||
@@ -39,10 +39,10 @@ namespace Frida {
|
||||
|
||||
#if WINDOWS
|
||||
var create_process_internal = Gum.Module.find_export_by_name ("kernelbase.dll", "CreateProcessInternalW");
|
||||
if (create_process_internal == null)
|
||||
if (create_process_internal == 0)
|
||||
create_process_internal = Gum.Module.find_export_by_name ("kernel32.dll", "CreateProcessInternalW");
|
||||
assert (create_process_internal != null);
|
||||
interceptor.attach (create_process_internal, this);
|
||||
assert (create_process_internal != 0);
|
||||
interceptor.attach ((void *) create_process_internal, this);
|
||||
#else
|
||||
unowned string libc = Gum.Process.query_libc_name ();
|
||||
#if DARWIN
|
||||
@@ -52,13 +52,19 @@ namespace Frida {
|
||||
posix_spawnattr_getflags = (PosixSpawnAttrSetFlagsFunc) Gum.Module.find_export_by_name (libc, "posix_spawnattr_getflags");
|
||||
posix_spawnattr_setflags = (PosixSpawnAttrSetFlagsFunc) Gum.Module.find_export_by_name (libc, "posix_spawnattr_setflags");
|
||||
|
||||
execve = Gum.Module.find_export_by_name (libc, "execve");
|
||||
execve = (void *) Gum.Module.find_export_by_name (libc, "execve");
|
||||
|
||||
interceptor.attach ((void *) posix_spawn, this);
|
||||
|
||||
interceptor.replace (execve, (void *) replacement_execve, this);
|
||||
#else
|
||||
interceptor.attach (Gum.Module.find_export_by_name (libc, "execve"), this);
|
||||
Gum.Address execve = 0;
|
||||
#if ANDROID
|
||||
execve = Gum.Module.find_symbol_by_name (libc, "__execve");
|
||||
#endif
|
||||
if (execve == 0)
|
||||
execve = Gum.Module.find_export_by_name (libc, "execve");
|
||||
interceptor.attach ((void *) execve, this);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -84,14 +84,19 @@ namespace Frida {
|
||||
if (script_backend == null || thread_id == caller_thread_id)
|
||||
return thread_suspend (thread_id);
|
||||
|
||||
int result = 0;
|
||||
var interceptor = Gum.Interceptor.obtain ();
|
||||
|
||||
int result = 0;
|
||||
while (true) {
|
||||
script_backend.with_lock_held (() => {
|
||||
result = thread_suspend (thread_id);
|
||||
interceptor.with_lock_held (() => {
|
||||
Gum.Cloak.with_lock_held (() => {
|
||||
result = thread_suspend (thread_id);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
if (result != 0 || !script_backend.is_locked ())
|
||||
if (result != 0 || (!script_backend.is_locked () && !Gum.Cloak.is_locked () && !interceptor.is_locked ()))
|
||||
break;
|
||||
|
||||
if (thread_resume (thread_id) != 0)
|
||||
|
||||
@@ -0,0 +1,521 @@
|
||||
#include "frida-payload.h"
|
||||
|
||||
#ifdef HAVE_DARWIN
|
||||
|
||||
#include <capstone.h>
|
||||
#include <gum/gumdarwin.h>
|
||||
#include <gum/gummemory.h>
|
||||
#include <ptrauth.h>
|
||||
|
||||
#define FRIDA_MH_MAGIC_64 0xfeedfacf
|
||||
#define FRIDA_LIBUNWIND_PATH "/usr/lib/system/libunwind.dylib"
|
||||
#define FRIDA_UNWIND_CURSOR_VTABLE_OFFSET_SET_INFO 0x68
|
||||
#define FRIDA_UNWIND_CURSOR_VTABLE_OFFSET_GET_REG 0x18
|
||||
#define FRIDA_FP_TO_SP(fp) (fp + 0x10)
|
||||
#ifdef HAVE_ARM64
|
||||
# define FRIDA_UNWIND_CURSOR_unwindInfoMissing 0x268
|
||||
# define FRIDA_UNWAARCH64_X29 29
|
||||
# define FRIDA_STRIP_MASK 0x0000007fffffffffULL
|
||||
#else
|
||||
# define FRIDA_UNWIND_CURSOR_unwindInfoMissing 0x100
|
||||
# define FRIDA_UNWX86_64_RBP 6
|
||||
#endif
|
||||
|
||||
typedef struct _FridaFillInfoContext FridaFillInfoContext;
|
||||
typedef struct _FridaDyldUnwindSections FridaDyldUnwindSections;
|
||||
typedef struct _FridaCreateArgs FridaCreateArgs;
|
||||
typedef struct _FridaUnwindHookState FridaUnwindHookState;
|
||||
|
||||
struct _FridaFillInfoContext
|
||||
{
|
||||
FridaDyldUnwindSections * info;
|
||||
guint missing_info;
|
||||
};
|
||||
|
||||
struct _FridaDyldUnwindSections
|
||||
{
|
||||
const void * mh;
|
||||
const void * dwarf_section;
|
||||
uintptr_t dwarf_section_length;
|
||||
const void * compact_unwind_section;
|
||||
uintptr_t compact_unwind_section_length;
|
||||
};
|
||||
|
||||
struct _FridaCreateArgs
|
||||
{
|
||||
GumAddress range_start;
|
||||
GumAddress range_end;
|
||||
};
|
||||
|
||||
struct _FridaUnwindHookState
|
||||
{
|
||||
gpointer vtable;
|
||||
gssize shift;
|
||||
gpointer * set_info_slot;
|
||||
gpointer set_info_original;
|
||||
void (* set_info) (gpointer cursor, gint is_return_address);
|
||||
gpointer (* get_reg) (gpointer cursor, gint reg);
|
||||
};
|
||||
|
||||
#if __has_feature (ptrauth_calls)
|
||||
# define FRIDA_RESIGN_PTR(x) GSIZE_TO_POINTER (gum_sign_code_address (gum_strip_code_address (GUM_ADDRESS (x))))
|
||||
#else
|
||||
# define FRIDA_RESIGN_PTR(x) (x)
|
||||
#endif
|
||||
|
||||
static FridaDyldUnwindSections * frida_get_cached_sections (GumAddress range_start, GumAddress range_end);
|
||||
static FridaDyldUnwindSections * frida_create_cached_sections (FridaCreateArgs * args);
|
||||
static gboolean frida_fill_info (const GumDarwinSectionDetails * details, FridaFillInfoContext * ctx);
|
||||
static void frida_unwind_cursor_set_info_replacement (gpointer cursor, gint is_return_address);
|
||||
static gpointer frida_find_vtable (void);
|
||||
static gboolean frida_compute_vtable_shift (gpointer vtable, gssize * shift);
|
||||
#ifdef HAVE_ARM64
|
||||
static gboolean frida_find_bss_range (const GumSectionDetails * details, GumMemoryRange * range);
|
||||
#else
|
||||
static gboolean frida_is_empty_function (GumAddress address);
|
||||
static gboolean frida_has_first_match (GumAddress address, gsize size, gboolean * matches);
|
||||
#endif
|
||||
|
||||
static FridaUnwindHookState * state = NULL;
|
||||
|
||||
void
|
||||
_frida_unwind_sitter_fill_unwind_sections (GumAddress invader_start, GumAddress invader_end, void * info)
|
||||
{
|
||||
FridaDyldUnwindSections * unwind_sections = info;
|
||||
FridaDyldUnwindSections * cached;
|
||||
|
||||
cached = frida_get_cached_sections (invader_start, invader_end);
|
||||
if (cached == NULL)
|
||||
return;
|
||||
|
||||
memcpy (unwind_sections, cached, sizeof (FridaDyldUnwindSections));
|
||||
}
|
||||
|
||||
void
|
||||
_frida_unwind_sitter_hook_libunwind (void)
|
||||
{
|
||||
#if GLIB_SIZEOF_VOID_P == 8
|
||||
gpointer * set_info_slot;
|
||||
gpointer get_reg_impl;
|
||||
GumInterceptor * interceptor;
|
||||
|
||||
if (state != NULL)
|
||||
return;
|
||||
|
||||
state = g_slice_new0 (FridaUnwindHookState);
|
||||
if (state == NULL)
|
||||
return;
|
||||
|
||||
state->vtable = frida_find_vtable ();
|
||||
if (state->vtable == NULL)
|
||||
goto unsupported_version;
|
||||
|
||||
if (!frida_compute_vtable_shift (state->vtable, &state->shift))
|
||||
goto unsupported_version;
|
||||
|
||||
set_info_slot = (gpointer *) (GUM_ADDRESS (state->vtable) + FRIDA_UNWIND_CURSOR_VTABLE_OFFSET_SET_INFO + state->shift);
|
||||
get_reg_impl = *(gpointer *) (GUM_ADDRESS (state->vtable) + FRIDA_UNWIND_CURSOR_VTABLE_OFFSET_GET_REG + state->shift);
|
||||
|
||||
state->set_info_slot = set_info_slot;
|
||||
state->set_info_original = *set_info_slot;
|
||||
state->set_info = FRIDA_RESIGN_PTR (state->set_info_original);
|
||||
state->get_reg = FRIDA_RESIGN_PTR (get_reg_impl);
|
||||
|
||||
interceptor = gum_interceptor_obtain ();
|
||||
if (gum_interceptor_replace (interceptor, state->set_info_original, frida_unwind_cursor_set_info_replacement, NULL, NULL)
|
||||
!= GUM_REPLACE_OK)
|
||||
goto unsupported_version;
|
||||
|
||||
return;
|
||||
|
||||
unsupported_version:
|
||||
g_slice_free (FridaUnwindHookState, state);
|
||||
state = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
_frida_unwind_sitter_unhook_libunwind (void)
|
||||
{
|
||||
GumInterceptor * interceptor;
|
||||
|
||||
if (state == NULL)
|
||||
return;
|
||||
|
||||
interceptor = gum_interceptor_obtain ();
|
||||
gum_interceptor_revert (interceptor, state->set_info_original);
|
||||
|
||||
g_slice_free (FridaUnwindHookState, state);
|
||||
state = NULL;
|
||||
}
|
||||
|
||||
static FridaDyldUnwindSections *
|
||||
frida_get_cached_sections (GumAddress range_start, GumAddress range_end)
|
||||
{
|
||||
static GOnce get_sections_once = G_ONCE_INIT;
|
||||
FridaCreateArgs args;
|
||||
|
||||
args.range_start = range_start;
|
||||
args.range_end = range_end;
|
||||
|
||||
g_once (&get_sections_once, (GThreadFunc) frida_create_cached_sections, &args);
|
||||
|
||||
return (FridaDyldUnwindSections *) get_sections_once.retval;
|
||||
}
|
||||
|
||||
static FridaDyldUnwindSections *
|
||||
frida_create_cached_sections (FridaCreateArgs * args)
|
||||
{
|
||||
FridaDyldUnwindSections * cached_sections;
|
||||
gsize page_size;
|
||||
gpointer header;
|
||||
GumPageProtection prot;
|
||||
GumDarwinModule * module;
|
||||
FridaFillInfoContext ctx;
|
||||
|
||||
page_size = gum_query_page_size ();
|
||||
header = GSIZE_TO_POINTER (args->range_start);
|
||||
|
||||
while ((gum_memory_query_protection (header, &prot) && (prot & GUM_PAGE_READ) == 0) ||
|
||||
(*(guint32 *) header != FRIDA_MH_MAGIC_64 && header + 4 <= GSIZE_TO_POINTER (args->range_end)))
|
||||
{
|
||||
header += page_size;
|
||||
}
|
||||
if (*(guint32 *) header != FRIDA_MH_MAGIC_64)
|
||||
return NULL;
|
||||
|
||||
cached_sections = g_slice_new0 (FridaDyldUnwindSections);
|
||||
cached_sections->mh = header;
|
||||
|
||||
module = gum_darwin_module_new_from_memory ("Frida", mach_task_self (), GPOINTER_TO_SIZE (header), GUM_DARWIN_MODULE_FLAGS_NONE, NULL);
|
||||
if (module == NULL)
|
||||
return cached_sections;
|
||||
|
||||
ctx.info = cached_sections;
|
||||
ctx.missing_info = 2;
|
||||
gum_darwin_module_enumerate_sections (module, (GumFoundDarwinSectionFunc) frida_fill_info, &ctx);
|
||||
|
||||
g_object_unref (module);
|
||||
|
||||
return cached_sections;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
frida_fill_info (const GumDarwinSectionDetails * details, FridaFillInfoContext * ctx)
|
||||
{
|
||||
if (strcmp ("__TEXT", details->segment_name) != 0)
|
||||
return TRUE;
|
||||
|
||||
if (strcmp ("__eh_frame", details->section_name) == 0)
|
||||
{
|
||||
ctx->missing_info--;
|
||||
ctx->info->dwarf_section = GSIZE_TO_POINTER (details->vm_address);
|
||||
ctx->info->dwarf_section_length = details->size;
|
||||
}
|
||||
else if (strcmp ("__unwind_info", details->section_name) == 0)
|
||||
{
|
||||
ctx->missing_info--;
|
||||
ctx->info->compact_unwind_section = GSIZE_TO_POINTER (details->vm_address);
|
||||
ctx->info->compact_unwind_section_length = details->size;
|
||||
}
|
||||
|
||||
return ctx->missing_info > 0;
|
||||
}
|
||||
|
||||
static void
|
||||
frida_unwind_cursor_set_info_replacement (gpointer self, gint is_return_address)
|
||||
{
|
||||
gboolean missing_info;
|
||||
GumAddress fp, stored_pc;
|
||||
gpointer * stored_pc_slot;
|
||||
#if defined (HAVE_ARM64) && !__has_feature (ptrauth_calls)
|
||||
gboolean was_signed = FALSE;
|
||||
#endif
|
||||
|
||||
if (state == NULL)
|
||||
return;
|
||||
|
||||
state->set_info (self, is_return_address);
|
||||
|
||||
#ifdef HAVE_ARM64
|
||||
fp = GUM_ADDRESS (state->get_reg (self, FRIDA_UNWAARCH64_X29));
|
||||
#else
|
||||
fp = GUM_ADDRESS (state->get_reg (self, FRIDA_UNWX86_64_RBP));
|
||||
#endif
|
||||
if (fp == 0 || fp == -1)
|
||||
return;
|
||||
|
||||
missing_info = *((guint8 *) self + FRIDA_UNWIND_CURSOR_unwindInfoMissing);
|
||||
|
||||
stored_pc_slot = GSIZE_TO_POINTER (fp + GLIB_SIZEOF_VOID_P);
|
||||
stored_pc = GUM_ADDRESS (*stored_pc_slot);
|
||||
#if __has_feature (ptrauth_calls)
|
||||
stored_pc = gum_strip_code_address (stored_pc);
|
||||
#elif defined (HAVE_ARM64)
|
||||
was_signed = (stored_pc & ~FRIDA_STRIP_MASK) != 0ULL;
|
||||
if (was_signed)
|
||||
stored_pc &= FRIDA_STRIP_MASK;
|
||||
#endif
|
||||
|
||||
if (!missing_info)
|
||||
{
|
||||
GumAddress translated;
|
||||
|
||||
translated = GUM_ADDRESS (gum_invocation_stack_translate (gum_interceptor_get_current_stack (), GSIZE_TO_POINTER (stored_pc)));
|
||||
if (translated != stored_pc)
|
||||
{
|
||||
#if __has_feature (ptrauth_calls)
|
||||
*stored_pc_slot = ptrauth_sign_unauthenticated (
|
||||
ptrauth_strip (GSIZE_TO_POINTER (translated), ptrauth_key_asia), ptrauth_key_asib, FRIDA_FP_TO_SP (fp));
|
||||
#elif defined (HAVE_ARM64)
|
||||
if (was_signed)
|
||||
{
|
||||
GumAddress resigned;
|
||||
|
||||
asm volatile (
|
||||
"mov x17, %1\n\t"
|
||||
"mov x16, %2\n\t"
|
||||
".byte 0x5f, 0x21, 0x03, 0xd5\n\t" /* pacib1716 */
|
||||
"mov %0, x17\n\t"
|
||||
: "=r" (resigned)
|
||||
: "r" (translated & FRIDA_STRIP_MASK),
|
||||
"r" (FRIDA_FP_TO_SP (fp))
|
||||
: "x16", "x17"
|
||||
);
|
||||
|
||||
*stored_pc_slot = GSIZE_TO_POINTER (resigned);
|
||||
}
|
||||
else
|
||||
{
|
||||
*stored_pc_slot = GSIZE_TO_POINTER (translated);
|
||||
}
|
||||
#else
|
||||
*stored_pc_slot = GSIZE_TO_POINTER (translated);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static gpointer
|
||||
frida_find_vtable (void)
|
||||
{
|
||||
GumAddress result = 0;
|
||||
GumAddress export;
|
||||
uint64_t address;
|
||||
G_GNUC_UNUSED cs_err err;
|
||||
csh capstone;
|
||||
cs_insn * insn = NULL;
|
||||
const uint8_t * code;
|
||||
size_t size;
|
||||
const size_t max_size = 2048;
|
||||
|
||||
export = gum_module_find_export_by_name (FRIDA_LIBUNWIND_PATH, "unw_init_local");
|
||||
if (export == 0)
|
||||
export = gum_module_find_export_by_name (FRIDA_LIBUNWIND_PATH, "_Unwind_RaiseException");
|
||||
if (export == 0)
|
||||
return NULL;
|
||||
export = gum_strip_code_address (export);
|
||||
address = export;
|
||||
|
||||
#ifdef HAVE_ARM64
|
||||
cs_arch_register_arm64 ();
|
||||
err = cs_open (CS_ARCH_ARM64, CS_MODE_LITTLE_ENDIAN, &capstone);
|
||||
#else
|
||||
cs_arch_register_x86 ();
|
||||
err = cs_open (CS_ARCH_X86, CS_MODE_64, &capstone);
|
||||
#endif
|
||||
g_assert (err == CS_ERR_OK);
|
||||
|
||||
err = cs_option (capstone, CS_OPT_DETAIL, CS_OPT_ON);
|
||||
g_assert (err == CS_ERR_OK);
|
||||
|
||||
insn = cs_malloc (capstone);
|
||||
code = GSIZE_TO_POINTER (export);
|
||||
size = max_size;
|
||||
|
||||
#ifdef HAVE_ARM64
|
||||
{
|
||||
GumAddress last_adrp;
|
||||
guint last_adrp_reg;
|
||||
GumMemoryRange bss_range;
|
||||
|
||||
bss_range.base_address = 0;
|
||||
gum_module_enumerate_sections (FRIDA_LIBUNWIND_PATH, (GumFoundSectionFunc) frida_find_bss_range, &bss_range);
|
||||
|
||||
while (cs_disasm_iter (capstone, &code, &size, &address, insn))
|
||||
{
|
||||
if (insn->id == ARM64_INS_RET || insn->id == ARM64_INS_RETAA || insn->id == ARM64_INS_RETAB)
|
||||
break;
|
||||
if (insn->id == ARM64_INS_ADRP)
|
||||
{
|
||||
if (result != 0)
|
||||
break;
|
||||
last_adrp = (GumAddress) insn->detail->arm64.operands[1].imm;
|
||||
last_adrp_reg = insn->detail->arm64.operands[0].reg;
|
||||
}
|
||||
else if (insn->id == ARM64_INS_ADD && insn->detail->arm64.operands[0].reg == last_adrp_reg)
|
||||
{
|
||||
GumAddress candidate;
|
||||
gboolean is_bss;
|
||||
|
||||
candidate = last_adrp + (GumAddress) insn->detail->arm64.operands[2].imm;
|
||||
|
||||
is_bss = bss_range.base_address != 0 &&
|
||||
bss_range.base_address <= candidate &&
|
||||
candidate < bss_range.base_address + bss_range.size;
|
||||
if (!is_bss)
|
||||
{
|
||||
if (result == 0)
|
||||
{
|
||||
result = candidate;
|
||||
last_adrp = candidate;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = candidate;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (result != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
while (cs_disasm_iter (capstone, &code, &size, &address, insn))
|
||||
{
|
||||
if (insn->id == X86_INS_RET)
|
||||
break;
|
||||
if (insn->id == X86_INS_LEA)
|
||||
{
|
||||
const cs_x86_op * op = &insn->detail->x86.operands[1];
|
||||
if (op->type == X86_OP_MEM && op->mem.base == X86_REG_RIP)
|
||||
{
|
||||
result = address + op->mem.disp * op->mem.scale;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (insn != NULL)
|
||||
cs_free (insn, 1);
|
||||
cs_close (&capstone);
|
||||
|
||||
return GSIZE_TO_POINTER (result);
|
||||
}
|
||||
|
||||
#ifdef HAVE_ARM64
|
||||
|
||||
static gboolean
|
||||
frida_find_bss_range (const GumSectionDetails * details, GumMemoryRange * range)
|
||||
{
|
||||
if (strcmp (details->name, "__bss") == 0)
|
||||
{
|
||||
range->base_address = details->address;
|
||||
range->size = details->size;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
frida_compute_vtable_shift (gpointer vtable, gssize * shift)
|
||||
{
|
||||
gboolean result = FALSE;
|
||||
G_GNUC_UNUSED cs_err err;
|
||||
csh capstone;
|
||||
cs_insn * insn = NULL;
|
||||
const uint8_t * code;
|
||||
uint64_t address;
|
||||
size_t size = 4;
|
||||
|
||||
cs_arch_register_arm64 ();
|
||||
err = cs_open (CS_ARCH_ARM64, CS_MODE_LITTLE_ENDIAN, &capstone);
|
||||
g_assert (err == CS_ERR_OK);
|
||||
|
||||
insn = cs_malloc (capstone);
|
||||
code = gum_strip_code_pointer (*(gpointer *) vtable);
|
||||
address = GPOINTER_TO_SIZE (code);
|
||||
|
||||
if (cs_disasm_iter (capstone, &code, &size, &address, insn))
|
||||
{
|
||||
if (insn->id == ARM64_INS_RET || insn->id == ARM64_INS_RETAA || insn->id == ARM64_INS_RETAB)
|
||||
*shift = 0;
|
||||
else
|
||||
*shift = -2 * GLIB_SIZEOF_VOID_P;
|
||||
|
||||
result = TRUE;
|
||||
}
|
||||
|
||||
if (insn != NULL)
|
||||
cs_free (insn, 1);
|
||||
cs_close (&capstone);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static gboolean
|
||||
frida_compute_vtable_shift (gpointer vtable, gssize * shift)
|
||||
{
|
||||
GumAddress cursor = GPOINTER_TO_SIZE (vtable);
|
||||
GumAddress error = cursor + 16 * GLIB_SIZEOF_VOID_P;
|
||||
|
||||
while (cursor < error && *(gpointer *) GSIZE_TO_POINTER (cursor) == NULL)
|
||||
cursor += GLIB_SIZEOF_VOID_P;
|
||||
if (cursor == error)
|
||||
return FALSE;
|
||||
|
||||
if (frida_is_empty_function (GUM_ADDRESS (*(gpointer *) GSIZE_TO_POINTER (cursor))) &&
|
||||
frida_is_empty_function (GUM_ADDRESS (*(gpointer *) GSIZE_TO_POINTER (cursor + GLIB_SIZEOF_VOID_P))))
|
||||
{
|
||||
*shift = cursor - GPOINTER_TO_SIZE (vtable);
|
||||
}
|
||||
else
|
||||
{
|
||||
*shift = cursor - GPOINTER_TO_SIZE (vtable) - 2 * GLIB_SIZEOF_VOID_P;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
frida_is_empty_function (GumAddress address)
|
||||
{
|
||||
gboolean matches = FALSE;
|
||||
GumMemoryRange range;
|
||||
GumMatchPattern * pattern;
|
||||
|
||||
range.base_address = address;
|
||||
range.size = 6;
|
||||
|
||||
/*
|
||||
* 55 push rbp
|
||||
* 4889e5 mov rbp, rsp
|
||||
* 5d pop rbp
|
||||
* c3 ret
|
||||
*/
|
||||
pattern = gum_match_pattern_new_from_string ("55 48 89 e5 5d c3");
|
||||
|
||||
gum_memory_scan (&range, pattern, (GumMemoryScanMatchFunc) frida_has_first_match, &matches);
|
||||
|
||||
gum_match_pattern_unref (pattern);
|
||||
|
||||
return matches;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
frida_has_first_match (GumAddress address, gsize size, gboolean * matches)
|
||||
{
|
||||
*matches = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,76 @@
|
||||
namespace Frida {
|
||||
#if DARWIN
|
||||
public class UnwindSitter : Object {
|
||||
public weak ProcessInvader invader {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
|
||||
private DyldFindUnwindSectionsFunc dyld_find_unwind_sections;
|
||||
|
||||
private const string LIBDYLD = "/usr/lib/system/libdyld.dylib";
|
||||
|
||||
[CCode (has_target = false)]
|
||||
private delegate int DyldFindUnwindSectionsFunc (void * addr, void * info);
|
||||
|
||||
public UnwindSitter (ProcessInvader invader) {
|
||||
Object (invader: invader);
|
||||
}
|
||||
|
||||
construct {
|
||||
var interceptor = Gum.Interceptor.obtain ();
|
||||
|
||||
dyld_find_unwind_sections = (DyldFindUnwindSectionsFunc)
|
||||
Gum.Module.find_export_by_name (LIBDYLD, "_dyld_find_unwind_sections");
|
||||
|
||||
interceptor.replace ((void *) dyld_find_unwind_sections, (void *) replacement_dyld_find_unwind_sections, this);
|
||||
|
||||
_hook_libunwind ();
|
||||
}
|
||||
|
||||
public override void dispose () {
|
||||
var interceptor = Gum.Interceptor.obtain ();
|
||||
|
||||
_unhook_libunwind ();
|
||||
interceptor.revert ((void *) dyld_find_unwind_sections);
|
||||
|
||||
base.dispose ();
|
||||
}
|
||||
|
||||
private static int replacement_dyld_find_unwind_sections (void * addr, void * info) {
|
||||
unowned Gum.InvocationContext context = Gum.Interceptor.get_current_invocation ();
|
||||
unowned UnwindSitter sitter = (UnwindSitter) context.get_replacement_data ();
|
||||
|
||||
Gum.MemoryRange range = sitter.invader.get_memory_range ();
|
||||
var range_end = range.base_address + range.size;
|
||||
|
||||
var address = Gum.Address.from_pointer (addr);
|
||||
#if ARM64
|
||||
address &= 0x7ffffffffULL;
|
||||
#endif
|
||||
var is_ours = address >= range.base_address && address < range_end;
|
||||
if (!is_ours)
|
||||
return sitter.dyld_find_unwind_sections (addr, info);
|
||||
|
||||
_fill_unwind_sections (range.base_address, range_end, info);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
public extern static void _fill_unwind_sections (Gum.Address invader_start, Gum.Address invader_end, void * info);
|
||||
public extern static void _hook_libunwind ();
|
||||
public extern static void _unhook_libunwind ();
|
||||
}
|
||||
#else
|
||||
public class UnwindSitter : Object {
|
||||
public weak ProcessInvader invader {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
|
||||
public UnwindSitter (ProcessInvader invader) {
|
||||
Object (invader: invader);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{4C39C3CF-13E5-4346-B6AE-F73013105936}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-pipe-32</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-pipe-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\base\frida-base-32.vcxproj">
|
||||
<Project>{c4203124-c838-437b-8662-ca477b146655}</Project>
|
||||
<Private>false</Private>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{e96fc7f6-bddd-4322-8836-d9af8b731269}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{ca976c61-371a-4de5-b837-a8bd8857bc13}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pipe-windows.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)pipe.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pipe-sddl.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="pipe.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-pipe.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pipe-glue.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pipe-sddl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,84 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{D50F460F-9C4D-42EB-A8C4-48C0C46CFAAF}</ProjectGuid>
|
||||
<RootNamespace>frida</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectName>frida-pipe-64</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)releng\frida-toolchain.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="$(SolutionDir)releng\frida-$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\tmp-windows\$(Platform)-$(Configuration)\$(ProjectName)\</OutDir>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(IntDir)..\frida-base-64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(FridaComponentDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="frida-pipe-common.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\releng\frida-deps.vcxproj">
|
||||
<Project>{4afce7c4-6d9a-4663-b43c-d2e518486910}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\base\frida-base-64.vcxproj">
|
||||
<Project>{a31522d9-715b-4e04-aa57-df7afebe082c}</Project>
|
||||
<Private>false</Private>
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\generated">
|
||||
<UniqueIdentifier>{6c15c760-cd5b-41c4-ad64-83283571aeaf}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\generated">
|
||||
<UniqueIdentifier>{984e0fc8-e24c-4868-a432-6dd66cc7db4d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pipe-windows.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)pipe.c">
|
||||
<Filter>Source Files\generated</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pipe-sddl.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="pipe.vala">
|
||||
<Filter>Source Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-pipe.h">
|
||||
<Filter>Header Files\generated</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pipe-glue.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pipe-sddl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>$(FridaCoreDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="pipe.vala">
|
||||
<Message>Compiling vala code</Message>
|
||||
<Command>"$(ValaCompiler)" pipe.vala --ccode --directory=$(IntDir) --library=frida-pipe --header=$(IntDir)frida-pipe.h $(ValaFlags) $(FridaCoreValaFlags) --vapidir="$(IntDir)..\frida-base-32" --vapidir="$(IntDir)..\frida-base-64" --pkg=gio-2.0 --pkg=nice --pkg=gee-0.8 --pkg=json-glib-1.0 --pkg=frida-base || exit 1
|
||||
echo > "$(IntDir)valacode.stamp"
|
||||
</Command>
|
||||
<AdditionalInputs>$(ValaCompiler);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs>$(IntDir)valacode.stamp;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClInclude Include="$(IntDir)frida-pipe.h" />
|
||||
<ClInclude Include="pipe-glue.h" />
|
||||
<ClInclude Include="pipe-sddl.h" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(IntDir)pipe.c">
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TurnOffAllWarnings</WarningLevel>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pipe-windows.c" />
|
||||
<ClCompile Include="pipe-sddl.c" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+11
-11
@@ -3,7 +3,7 @@ pipe_sources = [
|
||||
]
|
||||
|
||||
system_deps = []
|
||||
vala_args = []
|
||||
extra_vala_args = []
|
||||
|
||||
if host_os_family == 'windows'
|
||||
pipe_sources += [
|
||||
@@ -11,25 +11,25 @@ if host_os_family == 'windows'
|
||||
'pipe-sddl.c',
|
||||
]
|
||||
elif host_os in ['macos', 'ios', 'tvos']
|
||||
pipe_sources += ['pipe-darwin.c']
|
||||
|
||||
system_deps += [gio_unix_dep]
|
||||
vala_args += ['--pkg=frida-gum-darwin-1.0', '--pkg=posix']
|
||||
pipe_sources += 'pipe-darwin.c'
|
||||
extra_vala_args += '--pkg=frida-gum-darwin-1.0'
|
||||
else
|
||||
pipe_sources += ['pipe-unix.c']
|
||||
pipe_sources += 'pipe-unix.c'
|
||||
endif
|
||||
|
||||
system_deps += [gio_unix_dep]
|
||||
vala_args += ['--pkg=posix']
|
||||
if host_os_family != 'windows'
|
||||
system_deps += gio_unix_dep
|
||||
extra_vala_args += ['--pkg=gio-unix-2.0', '--pkg=posix']
|
||||
endif
|
||||
|
||||
if host_os == 'android'
|
||||
system_deps += [frida_selinux_dep]
|
||||
vala_args += frida_selinux_vala_args
|
||||
system_deps += libselinux_dep
|
||||
extra_vala_args += '--pkg=libselinux'
|
||||
endif
|
||||
|
||||
pipe = static_library('frida-pipe', pipe_sources,
|
||||
c_args: frida_component_cflags,
|
||||
vala_args: vala_args,
|
||||
vala_args: base_vala_args + extra_vala_args,
|
||||
vala_header: 'frida-pipe.h',
|
||||
dependencies: [glib_dep, gobject_dep, gio_dep, gee_dep, base_dep] + system_deps,
|
||||
)
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
frida_selinux_incdir = include_directories('.')
|
||||
|
||||
install_headers('frida-selinux.h', subdir: 'frida-' + api_version)
|
||||
frida_selinux_h = files('frida-selinux.h')
|
||||
install_headers(frida_selinux_h, subdir: 'frida-' + api_version)
|
||||
|
||||
frida_selinux = static_library('frida-selinux', 'patch.c',
|
||||
c_args: frida_component_cflags,
|
||||
dependencies: [glib_dep, libselinux_dep, libsepol_dep],
|
||||
dependencies: [glib_dep, gio_dep, libselinux_dep, libsepol_dep],
|
||||
)
|
||||
|
||||
frida_selinux_dep = declare_dependency(
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
@setlocal
|
||||
@echo off
|
||||
rem:: Based on: https://github.com/microsoft/terminal/issues/217#issuecomment-737594785
|
||||
goto :_start_
|
||||
|
||||
:set_real_dp0
|
||||
set dp0=%~dp0
|
||||
set "dp0=%dp0:~0,-1%"
|
||||
goto :eof
|
||||
|
||||
:_start_
|
||||
call :set_real_dp0
|
||||
|
||||
if not exist "%dp0%\releng\meson\meson.py" (
|
||||
pushd "%dp0%" & git submodule update --init --recursive --depth 1 & popd
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
)
|
||||
|
||||
endlocal & goto #_undefined_# 2>nul || title %COMSPEC% & python ^
|
||||
-c "import sys; sys.path.insert(0, sys.argv[1]); from releng.meson_make import main; main()" ^
|
||||
"%dp0%" ^
|
||||
.\build ^
|
||||
%*
|
||||
+341
-100
@@ -1,12 +1,49 @@
|
||||
project('frida-core', 'vala', 'c', 'cpp',
|
||||
version: '1.0.0',
|
||||
meson_version: '>=0.58.0',
|
||||
default_options: ['c_std=gnu99', 'cpp_std=c++11'],
|
||||
version: run_command(find_program('python3'), files('tools' / 'detect-version.py'),
|
||||
capture: true,
|
||||
check: true).stdout().strip(),
|
||||
meson_version: '>=1.1.0',
|
||||
default_options: ['c_std=gnu99,c99', 'cpp_std=c++17'],
|
||||
)
|
||||
|
||||
if not meson.get_compiler('vala').version().endswith('-frida')
|
||||
error('''Incompatible Vala compiler detected.
|
||||
|
||||
Frida currently relies on features not yet upstream. Grab the Frida-optimized
|
||||
Vala compiler from:
|
||||
|
||||
https://github.com/frida/vala''')
|
||||
endif
|
||||
|
||||
c_languages = ['c', 'cpp']
|
||||
cc = meson.get_compiler('c')
|
||||
cpp = meson.get_compiler('cpp')
|
||||
|
||||
releng = meson.global_source_root() / 'releng'
|
||||
if not import('fs').exists(releng)
|
||||
releng = meson.project_source_root() / 'releng'
|
||||
endif
|
||||
|
||||
frida_version = get_option('frida_version')
|
||||
if frida_version == ''
|
||||
frida_version = run_command(releng / 'frida_version.py', meson.project_source_root(), check: true).stdout().strip()
|
||||
endif
|
||||
tokens = frida_version.split('.')
|
||||
frida_major_version = tokens[0].to_int()
|
||||
frida_minor_version = tokens[1].to_int()
|
||||
if tokens.length() == 4
|
||||
frida_micro_version = tokens[2].split('-')[0].to_int() - 1
|
||||
frida_nano_version = tokens[3].to_int() + 1
|
||||
else
|
||||
assert(tokens.length() == 3)
|
||||
frida_micro_version = tokens[2].to_int()
|
||||
frida_nano_version = 0
|
||||
endif
|
||||
frida_profile = (frida_version != '0.0.0' and frida_nano_version == 0) ? 'prod' : 'dev'
|
||||
|
||||
api_version = '1.0'
|
||||
|
||||
header_install_dir = get_option('includedir') / 'frida-' + api_version
|
||||
header_install_dir = get_option('includedir') / f'frida-@api_version@'
|
||||
|
||||
build_os = build_machine.system()
|
||||
if build_os == 'android'
|
||||
@@ -14,13 +51,23 @@ if build_os == 'android'
|
||||
else
|
||||
build_os_family = build_os
|
||||
endif
|
||||
host_os = host_machine.system()
|
||||
if host_os == 'android'
|
||||
host_os_family = host_machine.system()
|
||||
if host_os_family == 'android'
|
||||
host_os_family = 'linux'
|
||||
else
|
||||
host_os_family = host_os
|
||||
endif
|
||||
host_is_64bit = host_machine.cpu_family().endswith('64')
|
||||
tokens = host_machine.subsystem().split('-')
|
||||
host_os = tokens[0]
|
||||
if tokens.length() == 2
|
||||
host_config = tokens[1]
|
||||
elif host_os_family == 'windows'
|
||||
if cc.get_argument_syntax() == 'msvc'
|
||||
host_config = get_option('b_vscrt')
|
||||
else
|
||||
host_config = 'mingw'
|
||||
endif
|
||||
else
|
||||
host_config = ''
|
||||
endif
|
||||
if host_machine.cpu_family() == 'arm'
|
||||
host_arch = 'arm'
|
||||
host_abi = 'arm'
|
||||
@@ -45,26 +92,33 @@ else
|
||||
host_arch = host_machine.cpu_family()
|
||||
host_abi = host_arch
|
||||
endif
|
||||
host_toolchain = (host_os_family == 'darwin') ? 'apple' : 'gnu'
|
||||
gumjs_archs = {
|
||||
'x86': 'ia32',
|
||||
'x86_64': 'x64',
|
||||
}
|
||||
host_arch_gumjs = gumjs_archs.get(host_arch, host_arch)
|
||||
|
||||
c_languages = ['c', 'cpp']
|
||||
if host_os_family == 'darwin'
|
||||
c_languages += ['objc', 'objcpp']
|
||||
add_languages('objc', 'objcpp', native: false)
|
||||
endif
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
python = import('python').find_installation()
|
||||
|
||||
if cc.get_argument_syntax() == 'msvc'
|
||||
host_toolchain = 'microsoft'
|
||||
resource_blob_extension = '.obj'
|
||||
else
|
||||
host_toolchain = (host_os_family == 'darwin') ? 'apple' : 'gnu'
|
||||
resource_blob_extension = '.S'
|
||||
endif
|
||||
|
||||
vala_flags = []
|
||||
|
||||
frida_component_cflags = []
|
||||
ndebug = get_option('b_ndebug')
|
||||
if ndebug == 'true' or (ndebug == 'if-release' and not get_option('debug'))
|
||||
optimize_for_prod = ndebug == 'true' or (ndebug == 'if-release' and not get_option('debug'))
|
||||
if optimize_for_prod
|
||||
frida_component_cflags += [
|
||||
'-DG_DISABLE_ASSERT',
|
||||
'-DG_DISABLE_CHECKS',
|
||||
@@ -84,30 +138,6 @@ if host_arch == 'arm'
|
||||
endif
|
||||
|
||||
if host_os_family == 'darwin'
|
||||
apple_os_flavors = [
|
||||
['macOS', 'OSX'],
|
||||
['iOS', 'IOS'],
|
||||
['watchOS', 'WATCH'],
|
||||
['tvOS', 'TV'],
|
||||
]
|
||||
foreach candidate : apple_os_flavors
|
||||
name = candidate[0]
|
||||
constant = candidate[1]
|
||||
if cc.compiles('''
|
||||
#include <TargetConditionals.h>
|
||||
#if !TARGET_OS_@0@
|
||||
# error Nope
|
||||
#endif
|
||||
'''.format(constant),
|
||||
name: f'compiling for @name@')
|
||||
host_os = name.to_lower()
|
||||
break
|
||||
endif
|
||||
endforeach
|
||||
if host_os == 'darwin'
|
||||
error('Unable to detect Apple OS flavor')
|
||||
endif
|
||||
|
||||
have_ptrauth_src = '''
|
||||
#ifdef __clang__
|
||||
# if __has_feature (ptrauth_calls)
|
||||
@@ -126,28 +156,31 @@ if host_os_family == 'darwin'
|
||||
endif
|
||||
endif
|
||||
|
||||
if host_os_family == 'linux' and cc.has_header('android/api-level.h')
|
||||
host_os = 'android'
|
||||
endif
|
||||
|
||||
if cc.sizeof('void *') == 8
|
||||
host_cpu_mode = '64'
|
||||
else
|
||||
host_cpu_mode = '32'
|
||||
endif
|
||||
|
||||
cdata = configuration_data()
|
||||
if cc.get_define('FRIDA_VERSION') == ''
|
||||
version = meson.project_version()
|
||||
tokens = version.split('.')
|
||||
cdata.set_quoted('FRIDA_VERSION', version)
|
||||
cdata.set('FRIDA_MAJOR_VERSION', tokens[0].to_int())
|
||||
cdata.set('FRIDA_MINOR_VERSION', tokens[1].to_int())
|
||||
cdata.set('FRIDA_MICRO_VERSION', tokens[2].to_int())
|
||||
cdata.set('FRIDA_NANO_VERSION', 0)
|
||||
if host_os_family == 'darwin' and host_arch == 'arm64'
|
||||
host_is_modern = host_abi == 'arm64e'
|
||||
else
|
||||
host_is_modern = host_cpu_mode == '64'
|
||||
endif
|
||||
|
||||
cdata.set_quoted('FRIDA_PREFIX', get_option('prefix'))
|
||||
cdata = configuration_data()
|
||||
|
||||
cdata.set_quoted('FRIDA_VERSION', frida_version)
|
||||
cdata.set('FRIDA_MAJOR_VERSION', frida_major_version)
|
||||
cdata.set('FRIDA_MINOR_VERSION', frida_minor_version)
|
||||
cdata.set('FRIDA_MICRO_VERSION', frida_micro_version)
|
||||
cdata.set('FRIDA_NANO_VERSION', frida_nano_version)
|
||||
|
||||
escaped_prefix = get_option('prefix')
|
||||
if host_os_family == 'windows'
|
||||
escaped_prefix = escaped_prefix.replace('\\', '\\\\')
|
||||
endif
|
||||
cdata.set_quoted('FRIDA_PREFIX', escaped_prefix)
|
||||
|
||||
exe_suffix = (host_os_family == 'windows') ? '.exe' : ''
|
||||
if host_os_family == 'windows'
|
||||
@@ -162,11 +195,14 @@ helper_name = 'frida-helper' + exe_suffix
|
||||
agent_name = 'frida-agent' + shlib_suffix
|
||||
gadget_name = 'frida-gadget' + shlib_suffix
|
||||
|
||||
root_asset_dir = get_option('libdir') / 'frida'
|
||||
if host_os_family == 'darwin'
|
||||
asset_dir = get_option('libdir') / 'frida'
|
||||
asset_dir = root_asset_dir
|
||||
default_asset_path_template = get_option('prefix') / get_option('libdir') / 'frida'
|
||||
else
|
||||
asset_dir = get_option('libdir') / 'frida' / host_cpu_mode
|
||||
asset_dir = root_asset_dir / host_cpu_mode
|
||||
asset_dir_modern = root_asset_dir / '64'
|
||||
asset_dir_legacy = root_asset_dir / '32'
|
||||
default_asset_path_template = get_option('prefix') / get_option('libdir') / 'frida' / '<arch>'
|
||||
endif
|
||||
|
||||
@@ -240,18 +276,151 @@ if get_option('b_sanitize') == 'address'
|
||||
cdata.set('HAVE_ASAN', 1)
|
||||
endif
|
||||
|
||||
glib_dep = dependency('glib-2.0', version: '>=2.74')
|
||||
gum_dep = dependency('frida-gum-1.0', default_options: [
|
||||
f'frida_version=@frida_version@',
|
||||
'gumjs=enabled',
|
||||
])
|
||||
gumjs_dep = dependency('frida-gumjs-1.0')
|
||||
gumjs_inspector_dep = dependency('frida-gumjs-inspector-1.0')
|
||||
|
||||
glib_options = [
|
||||
'cocoa=disabled',
|
||||
'selinux=disabled',
|
||||
'xattr=false',
|
||||
'libmount=disabled',
|
||||
'tests=false',
|
||||
'nls=disabled',
|
||||
]
|
||||
if optimize_for_prod
|
||||
glib_options += [
|
||||
'glib_debug=disabled',
|
||||
'glib_assert=false',
|
||||
'glib_checks=false',
|
||||
]
|
||||
endif
|
||||
|
||||
gee_options = [
|
||||
'disable-introspection=true',
|
||||
]
|
||||
if optimize_for_prod
|
||||
gee_options += 'disable-internal-asserts=true'
|
||||
endif
|
||||
|
||||
glib_dep = dependency('glib-2.0', version: '>=2.72', default_options: glib_options)
|
||||
gobject_dep = dependency('gobject-2.0')
|
||||
gmodule_dep = dependency('gmodule-2.0')
|
||||
gio_dep = dependency('gio-2.0')
|
||||
gee_dep = dependency('gee-0.8')
|
||||
json_glib_dep = dependency('json-glib-1.0')
|
||||
libsoup_dep = dependency('libsoup-3.0')
|
||||
gum_dep = dependency('frida-gum-1.0')
|
||||
gumjs_dep = dependency('frida-gumjs-1.0')
|
||||
gumjs_inspector_dep = dependency('frida-gumjs-inspector-1.0')
|
||||
quickjs_dep = dependency('quickjs', required: false)
|
||||
gee_dep = dependency('gee-0.8', default_options: gee_options)
|
||||
json_glib_dep = dependency('json-glib-1.0', default_options: [
|
||||
'introspection=disabled',
|
||||
'gtk_doc=disabled',
|
||||
'tests=false',
|
||||
])
|
||||
libsoup_dep = dependency('libsoup-3.0', default_options: [
|
||||
'gssapi=disabled',
|
||||
'ntlm=disabled',
|
||||
'brotli=disabled',
|
||||
'tls_check=false',
|
||||
'introspection=disabled',
|
||||
'vapi=disabled',
|
||||
'docs=disabled',
|
||||
'examples=disabled',
|
||||
'tests=false',
|
||||
'sysprof=disabled',
|
||||
])
|
||||
brotlidec_dep = dependency('libbrotlidec')
|
||||
quickjs_dep = dependency('quickjs', required: get_option('barebone_backend'), default_options: [
|
||||
'libc=false',
|
||||
'bignum=true',
|
||||
'atomics=disabled',
|
||||
'stack_check=disabled',
|
||||
])
|
||||
|
||||
native_glib_dep = dependency('glib-2.0', version: '>=2.74', native: true, default_options: glib_options)
|
||||
native_gio_dep = dependency('gio-2.0', native: true)
|
||||
native_gee_dep = dependency('gee-0.8', native: true, default_options: gee_options)
|
||||
native_brotlienc_dep = dependency('libbrotlienc', native: true)
|
||||
|
||||
if host_os_family == 'windows'
|
||||
gio_windows_dep = dependency('gio-windows-2.0')
|
||||
else
|
||||
gio_unix_dep = dependency('gio-unix-2.0')
|
||||
endif
|
||||
|
||||
have_local_backend = get_option('local_backend').allowed()
|
||||
have_fruity_backend = get_option('fruity_backend').allowed()
|
||||
have_droidy_backend = get_option('droidy_backend').allowed()
|
||||
have_socket_backend = get_option('socket_backend').allowed()
|
||||
have_barebone_backend = quickjs_dep.found()
|
||||
have_compiler_backend = get_option('compiler_backend') \
|
||||
.disable_if(not have_local_backend, error_message: 'compiler backend requires the local backend for script execution') \
|
||||
.disable_auto_if(host_os == 'watchos') \
|
||||
.allowed()
|
||||
|
||||
build_gadget = get_option('gadget') \
|
||||
.disable_auto_if(meson.is_subproject()) \
|
||||
.allowed()
|
||||
|
||||
build_server = get_option('server') \
|
||||
.disable_if(not have_local_backend, error_message: 'frida-server requires the local backend to be included') \
|
||||
.disable_if(host_os == 'watchos', error_message: 'frida-server not yet supported on watchOS') \
|
||||
.disable_auto_if(meson.is_subproject()) \
|
||||
.allowed()
|
||||
|
||||
build_portal = get_option('portal') \
|
||||
.disable_if(host_os == 'watchos', error_message: 'frida-portal not yet supported on watchOS') \
|
||||
.disable_auto_if(meson.is_subproject()) \
|
||||
.allowed()
|
||||
|
||||
build_inject = get_option('inject') \
|
||||
.disable_if(not have_local_backend, error_message: 'frida-inject requires the local backend to be included') \
|
||||
.disable_if(host_os == 'watchos', error_message: 'frida-inject not yet supported on watchOS') \
|
||||
.disable_auto_if(meson.is_subproject()) \
|
||||
.allowed()
|
||||
|
||||
build_tests = get_option('tests') \
|
||||
.disable_if(host_os == 'watchos', error_message: 'tests not yet supported on watchOS') \
|
||||
.disable_auto_if(meson.is_subproject() or not meson.can_run_host_binaries()) \
|
||||
.allowed()
|
||||
|
||||
foreach b : [['local', have_local_backend],
|
||||
['fruity', have_fruity_backend],
|
||||
['droidy', have_droidy_backend],
|
||||
['socket', have_socket_backend],
|
||||
['barebone', have_barebone_backend],
|
||||
['compiler', have_compiler_backend]]
|
||||
if b[1]
|
||||
vala_flags += '--define=HAVE_@0@_BACKEND'.format(b[0].to_upper())
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if have_barebone_backend or have_compiler_backend
|
||||
node = find_program('node', version: '>=18.0.0', native: true, required: false)
|
||||
if not node.found()
|
||||
error('Need Node.js >= 18.0.0 to process JavaScript code at build time')
|
||||
endif
|
||||
npm = find_program('npm', native: true, required: false)
|
||||
if not npm.found()
|
||||
error('Need npm to process JavaScript code at build time')
|
||||
endif
|
||||
endif
|
||||
|
||||
gi_dep = dependency('gobject-introspection-1.0', required: false)
|
||||
if gi_dep.found()
|
||||
girdir = gi_dep.get_variable('girdir')
|
||||
else
|
||||
girdir = get_option('prefix') / get_option('datadir') / 'gir-1.0'
|
||||
endif
|
||||
uninstalled_girdir = meson.current_build_dir() / 'src'
|
||||
|
||||
vapidir = get_option('datadir') / 'vala' / 'vapi'
|
||||
|
||||
gum_vala_args = [
|
||||
'--pkg=frida-gum-1.0',
|
||||
'--vapidir=' + gum_dep.get_variable('frida_vapidir'),
|
||||
]
|
||||
gumjs_vala_args = ['--pkg=frida-gumjs-1.0', '--pkg=gio-2.0', gum_vala_args]
|
||||
gumjs_inspector_vala_args = ['--pkg=frida-gumjs-inspector-1.0', gum_vala_args]
|
||||
|
||||
have_v8 = gumjs_dep.get_variable('gumjs_v8') == 'enabled'
|
||||
if have_v8
|
||||
@@ -264,22 +433,13 @@ else
|
||||
v8_mksnapshot = ''
|
||||
endif
|
||||
|
||||
native_glib_dep = dependency('glib-2.0', version: '>=2.74', native: true)
|
||||
native_gio_dep = dependency('gio-2.0', native: true)
|
||||
native_gee_dep = dependency('gee-0.8', native: true)
|
||||
native_brotlienc_dep = dependency('libbrotlienc', native: true)
|
||||
|
||||
if host_os_family == 'windows'
|
||||
gio_windows_dep = dependency('gio-windows-2.0')
|
||||
else
|
||||
gio_unix_dep = dependency('gio-unix-2.0')
|
||||
endif
|
||||
|
||||
backend_deps_private = []
|
||||
backend_reqs_private = []
|
||||
backend_libs_private = []
|
||||
|
||||
if quickjs_dep.found()
|
||||
backend_deps_private += quickjs_dep
|
||||
backend_reqs_private += 'quickjs'
|
||||
endif
|
||||
|
||||
if host_os_family == 'linux' and cc.has_function('openpty', prefix: '#include <pty.h>')
|
||||
@@ -287,9 +447,13 @@ if host_os_family == 'linux' and cc.has_function('openpty', prefix: '#include <p
|
||||
endif
|
||||
|
||||
if host_os == 'android'
|
||||
termux_elf_cleaner = find_program('termux-elf-cleaner', native: true)
|
||||
libselinux_dep = dependency('libselinux', version: '>=3.0')
|
||||
libsepol_dep = dependency('libsepol', version: '>=3.0')
|
||||
backend_deps_private += [libselinux_dep, libsepol_dep]
|
||||
backend_reqs_private += ['libselinux', 'libsepol']
|
||||
else
|
||||
termux_elf_cleaner = []
|
||||
endif
|
||||
|
||||
tls_provider_dep = dependency('gioopenssl', required: get_option('connectivity'))
|
||||
@@ -297,20 +461,31 @@ if tls_provider_dep.found()
|
||||
cdata.set('HAVE_GIOOPENSSL', 1)
|
||||
vala_flags += ['--define=HAVE_GIOOPENSSL']
|
||||
backend_deps_private += tls_provider_dep
|
||||
backend_reqs_private += 'gioopenssl'
|
||||
endif
|
||||
|
||||
nice_dep = dependency('nice', required: get_option('connectivity'))
|
||||
nice_dep = dependency('nice', required: get_option('connectivity'), default_options: [
|
||||
'gupnp=disabled',
|
||||
'gstreamer=disabled',
|
||||
'crypto-library=openssl',
|
||||
'examples=disabled',
|
||||
'tests=disabled',
|
||||
'introspection=disabled',
|
||||
])
|
||||
if nice_dep.found()
|
||||
openssl_dep = dependency('openssl')
|
||||
usrsctp_dep = dependency('usrsctp')
|
||||
usrsctp_dep = dependency('usrsctp', default_options: [
|
||||
'sctp_inet=false',
|
||||
'sctp_inet6=false',
|
||||
'sctp_build_programs=false',
|
||||
])
|
||||
|
||||
cdata.set('HAVE_NICE', 1)
|
||||
vala_flags += ['--define=HAVE_NICE']
|
||||
backend_deps_private += [nice_dep, openssl_dep, usrsctp_dep]
|
||||
backend_reqs_private += ['nice', 'openssl', 'usrsctp']
|
||||
|
||||
if cc.has_member('struct sockaddr_conn', 'sconn_len',
|
||||
dependencies: [usrsctp_dep],
|
||||
prefix: '#include <usrsctp.h>')
|
||||
if host_os_family in ['darwin', 'freebsd', 'qnx']
|
||||
cdata.set('HAVE_SCONN_LEN', 1)
|
||||
endif
|
||||
else
|
||||
@@ -331,8 +506,17 @@ if host_os in ['ios', 'tvos']
|
||||
backend_libs_private += ['-Wl,-framework,CoreGraphics', '-Wl,-framework,UIKit']
|
||||
endif
|
||||
|
||||
ar = find_program('ar')
|
||||
nm = find_program('nm')
|
||||
if host_toolchain == 'microsoft'
|
||||
lib = find_program('lib')
|
||||
ar = ''
|
||||
nm = ''
|
||||
strip = ''
|
||||
else
|
||||
lib = ''
|
||||
ar = find_program('ar')
|
||||
nm = find_program('nm')
|
||||
strip = find_program('strip')
|
||||
endif
|
||||
if host_os_family != 'windows'
|
||||
if host_os_family == 'darwin'
|
||||
readelf = ''
|
||||
@@ -348,7 +532,6 @@ else
|
||||
otool = ''
|
||||
libtool = ''
|
||||
endif
|
||||
strip = find_program('strip')
|
||||
if host_os_family == 'darwin'
|
||||
install_name_tool = find_program('install_name_tool')
|
||||
lipo = find_program('lipo')
|
||||
@@ -359,14 +542,61 @@ else
|
||||
codesign = ''
|
||||
endif
|
||||
|
||||
modulate = files('tools/modulate.py')
|
||||
post_process_module = [
|
||||
files('tools/post-process-module.sh'),
|
||||
if get_option('devkits').length() != 0
|
||||
if get_option('default_library') != 'static'
|
||||
error('Devkits can only be generated from static libraries')
|
||||
endif
|
||||
mkdevkit = [python, releng / 'mkdevkit.py']
|
||||
uninstalled_dir = meson.global_build_root() / 'meson-uninstalled'
|
||||
devkit_options = [
|
||||
'--cc', '>>>', cc.cmd_array(), '<<<',
|
||||
'--c-args', '>>>', get_option('c_args'), '<<<',
|
||||
'--pkg-config', '>>>', find_program('pkg-config'), '<<<',
|
||||
'--pkg-config-path', '>>>', uninstalled_dir, get_option('pkg_config_path'), '<<<',
|
||||
]
|
||||
if host_toolchain == 'microsoft'
|
||||
static_lib_prefix = ''
|
||||
static_lib_suffix = '.lib'
|
||||
devkit_options += ['--lib', '>>>', lib, '<<<']
|
||||
else
|
||||
static_lib_prefix = 'lib'
|
||||
static_lib_suffix = '.a'
|
||||
devkit_options += [
|
||||
'--ar', '>>>', ar, '<<<',
|
||||
'--nm', '>>>', nm, '<<<',
|
||||
]
|
||||
objcopy = find_program('objcopy', required: false)
|
||||
if objcopy.found()
|
||||
devkit_options += ['--objcopy', '>>>', objcopy, '<<<']
|
||||
endif
|
||||
endif
|
||||
if host_os_family == 'darwin'
|
||||
devkit_options += ['--libtool', '>>>', libtool, '<<<']
|
||||
endif
|
||||
endif
|
||||
|
||||
modulate = [
|
||||
python,
|
||||
files('tools' / 'modulate.py'),
|
||||
'--endian', host_machine.endian(),
|
||||
'--nm', '>>>', nm, '<<<',
|
||||
'--readelf', '>>>', readelf, '<<<',
|
||||
'--otool', '>>>', otool, '<<<',
|
||||
'--output', '@OUTPUT@',
|
||||
'@INPUT@',
|
||||
]
|
||||
post_process = [
|
||||
python,
|
||||
files('tools' / 'post-process.py'),
|
||||
host_os,
|
||||
host_abi,
|
||||
'>>>', strip, '<<<',
|
||||
get_option('strip').to_string(),
|
||||
install_name_tool,
|
||||
codesign,
|
||||
'>>>', install_name_tool, '<<<',
|
||||
'>>>', codesign, '<<<',
|
||||
'>>>', termux_elf_cleaner, '<<<',
|
||||
'@OUTPUT@',
|
||||
'@INPUT0@',
|
||||
]
|
||||
|
||||
mapper_opt = get_option('mapper')
|
||||
@@ -384,14 +614,17 @@ configure_file(
|
||||
configuration: cdata)
|
||||
|
||||
add_project_arguments(
|
||||
'-include', 'config.h',
|
||||
(cc.get_argument_syntax() == 'msvc') ? '/FI' : '-include', meson.current_build_dir() / 'config.h',
|
||||
'-DG_LOG_DOMAIN="Frida"',
|
||||
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56',
|
||||
'-DG_DISABLE_DEPRECATED',
|
||||
language: c_languages)
|
||||
|
||||
if host_os_family == 'linux'
|
||||
add_project_arguments('-D_GNU_SOURCE=1', language: c_languages)
|
||||
# Our Vala compiler emits warnings pragmas for GCC >= 5, so for older versions we'll need to
|
||||
# suppress them through GCC's command-line options. It would be better to only do this for
|
||||
# Vala-generated sources, but this will have to do for now.
|
||||
if cc.get_id() == 'gcc' and cc.compiles('#if __GNUC__ >= 5\n#error NOTNEEDED\n#endif')
|
||||
add_project_arguments('-w', language: 'c')
|
||||
endif
|
||||
|
||||
vala_flags += [
|
||||
@@ -407,25 +640,33 @@ vala_flags += ['--define=' + host_arch.to_upper()]
|
||||
if host_abi != host_arch
|
||||
vala_flags += ['--define=' + host_abi.to_upper()]
|
||||
endif
|
||||
if get_option('agent_legacy') != ''
|
||||
vala_flags += ['--define=CROSS_ARCH']
|
||||
endif
|
||||
add_project_arguments(vala_flags, language: ['vala'])
|
||||
add_project_arguments(vala_flags, language: 'vala')
|
||||
|
||||
native_vala_flags = [
|
||||
'--vapidir=' + meson.current_source_dir() / 'vapi',
|
||||
]
|
||||
add_project_arguments(native_vala_flags, language: ['vala'], native: true)
|
||||
add_project_arguments(native_vala_flags, language: 'vala', native: true)
|
||||
|
||||
subdir('compat')
|
||||
subdir('tools')
|
||||
subdir('lib')
|
||||
subdir('src')
|
||||
if host_os != 'watchos'
|
||||
if build_server
|
||||
subdir('server')
|
||||
subdir('portal')
|
||||
subdir('inject')
|
||||
|
||||
if get_option('tests')
|
||||
subdir('tests')
|
||||
endif
|
||||
endif
|
||||
if build_portal
|
||||
subdir('portal')
|
||||
endif
|
||||
if build_inject
|
||||
subdir('inject')
|
||||
endif
|
||||
if build_tests
|
||||
subdir('tests')
|
||||
endif
|
||||
|
||||
summary(
|
||||
{
|
||||
'compat': compat_summary,
|
||||
},
|
||||
section: 'Features',
|
||||
)
|
||||
@@ -1,3 +1,51 @@
|
||||
option('frida_version',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Frida version, such as 16.2.2 or 16.2.2-dev.27',
|
||||
)
|
||||
|
||||
option('local_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include backend for the local system',
|
||||
)
|
||||
|
||||
option('fruity_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include the Fruity backend',
|
||||
)
|
||||
|
||||
option('droidy_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include the Droidy backend',
|
||||
)
|
||||
|
||||
option('socket_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include the Socket backend',
|
||||
)
|
||||
|
||||
option('barebone_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include the Barebone backend',
|
||||
)
|
||||
|
||||
option('compiler_backend',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Include frida-compile backend powered by GumJS',
|
||||
)
|
||||
|
||||
option('compiler_snapshot',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Speed up compiler startup by using a snapshot'
|
||||
)
|
||||
|
||||
option('assets',
|
||||
type: 'combo',
|
||||
choices: ['embedded', 'installed'],
|
||||
@@ -7,58 +55,86 @@ option('assets',
|
||||
|
||||
option('asset_path_template',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Override the default installed asset path template'
|
||||
)
|
||||
|
||||
option('compat',
|
||||
type: 'array',
|
||||
choices: ['auto', 'disabled', 'native', 'emulated'],
|
||||
value: ['auto'],
|
||||
description: 'Support for targets with a different architecture',
|
||||
)
|
||||
|
||||
option('helper_modern',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt frida-helper to embed for use on modern systems'
|
||||
)
|
||||
|
||||
option('helper_legacy',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt frida-helper to embed for use on legacy systems'
|
||||
)
|
||||
|
||||
option('agent_modern',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt agent to embed for use on modern targets'
|
||||
)
|
||||
|
||||
option('agent_legacy',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt agent to embed for use on legacy targets'
|
||||
)
|
||||
|
||||
option('agent_emulated_modern',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt agent to embed for use on modern emulated targets'
|
||||
)
|
||||
|
||||
option('agent_emulated_legacy',
|
||||
type: 'string',
|
||||
value: '',
|
||||
value: 'auto',
|
||||
description: 'Prebuilt agent to embed for use on legacy emulated targets'
|
||||
)
|
||||
|
||||
option('agent_dbghelp_prefix',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Location of DbgHelp binaries to embed alongside agent (Windows only)'
|
||||
)
|
||||
|
||||
option('agent_symsrv_prefix',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Location of SymSrv binaries to embed alongside agent (Windows only)'
|
||||
)
|
||||
|
||||
option('gadget',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Build frida-gadget',
|
||||
)
|
||||
|
||||
option('server',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Build frida-server',
|
||||
)
|
||||
|
||||
option('portal',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Build frida-portal',
|
||||
)
|
||||
|
||||
option('inject',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Build frida-inject',
|
||||
)
|
||||
|
||||
option('connectivity',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
@@ -71,14 +147,15 @@ option('mapper',
|
||||
description: 'Use our own out-of-process dynamic linker for injection on i/macOS'
|
||||
)
|
||||
|
||||
option('compiler_snapshot',
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Speed up compiler startup by using a snapshot'
|
||||
option('devkits',
|
||||
type: 'array',
|
||||
choices: ['core'],
|
||||
value: [],
|
||||
description: 'Devkits to build'
|
||||
)
|
||||
|
||||
option('tests',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Build tests'
|
||||
)
|
||||
+5
-16
@@ -6,11 +6,11 @@ extra_link_args = []
|
||||
extra_link_depends = []
|
||||
if host_os_family == 'darwin'
|
||||
symlist = 'frida-portal.symbols'
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + join_paths(meson.current_source_dir(), symlist)]
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + meson.current_source_dir() / symlist]
|
||||
extra_link_depends += [symlist]
|
||||
elif host_os_family != 'windows'
|
||||
symscript = 'frida-portal.version'
|
||||
extra_link_args += ['-Wl,--version-script,' + join_paths(meson.current_source_dir(), symscript)]
|
||||
extra_link_args += ['-Wl,--version-script,' + meson.current_source_dir() / symscript]
|
||||
extra_link_depends += [symscript]
|
||||
endif
|
||||
|
||||
@@ -20,27 +20,16 @@ if tls_provider_dep.found()
|
||||
endif
|
||||
|
||||
raw_portal = executable('frida-portal-raw', portal_sources,
|
||||
vala_args: ['--pkg=posix'],
|
||||
vala_args: [core_vala_args, '--pkg=posix'],
|
||||
link_args: extra_link_args,
|
||||
link_depends: extra_link_depends,
|
||||
dependencies: [core_dep] + extra_deps,
|
||||
)
|
||||
|
||||
custom_target('frida-portal',
|
||||
input: [
|
||||
raw_portal,
|
||||
'frida-portal.xcent',
|
||||
],
|
||||
input: [raw_portal, 'frida-portal.xcent'],
|
||||
output: 'frida-portal' + exe_suffix,
|
||||
command: [
|
||||
files('post-process.sh'),
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
host_os,
|
||||
'>>>', strip, '<<<',
|
||||
get_option('strip').to_string(),
|
||||
codesign,
|
||||
],
|
||||
command: post_process + ['executable', 're.frida.Portal', '@INPUT1@'],
|
||||
install: true,
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
input_portal_path=$1
|
||||
input_entitlements_path=$2
|
||||
output_portal_path=$3
|
||||
host_os=$4
|
||||
strip_command=()
|
||||
if [ "$5" = ">>>" ]; then
|
||||
shift 5
|
||||
while true; do
|
||||
cur=$1
|
||||
shift 1
|
||||
if [ "$cur" = "<<<" ]; then
|
||||
break
|
||||
fi
|
||||
strip_command+=("$cur")
|
||||
done
|
||||
else
|
||||
echo "Invalid argument" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
strip_enabled=$1
|
||||
codesign=$2
|
||||
|
||||
case $host_os in
|
||||
macos)
|
||||
if [ -z "$MACOS_CERTID" ]; then
|
||||
echo "MACOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
ios)
|
||||
if [ -z "$IOS_CERTID" ]; then
|
||||
echo "IOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
tvos)
|
||||
if [ -z "$TVOS_CERTID" ]; then
|
||||
echo "TVOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
intermediate_path=$output_portal_path.tmp
|
||||
rm -f "$intermediate_path"
|
||||
cp -a "$input_portal_path" "$intermediate_path"
|
||||
|
||||
if [ "$strip_enabled" = "true" ]; then
|
||||
"${strip_command[@]}" "$intermediate_path" || exit 1
|
||||
fi
|
||||
|
||||
case $host_os in
|
||||
macos|ios|tvos)
|
||||
case $host_os in
|
||||
macos)
|
||||
"$codesign" -f -s "$MACOS_CERTID" -i "re.frida.Portal" "$intermediate_path" || exit 1
|
||||
;;
|
||||
ios)
|
||||
"$codesign" -f -s "$IOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
tvos)
|
||||
"$codesign" -f -s "$TVOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
mv "$intermediate_path" "$output_portal_path"
|
||||
Submodule
+1
Submodule releng added at 56b262207c.
+28
-19
@@ -16,41 +16,50 @@ extra_link_args = []
|
||||
extra_link_depends = []
|
||||
if host_os_family == 'darwin'
|
||||
symlist = 'frida-server.symbols'
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + join_paths(meson.current_source_dir(), symlist)]
|
||||
extra_link_args += ['-Wl,-exported_symbols_list,' + meson.current_source_dir() / symlist]
|
||||
extra_link_depends += [symlist]
|
||||
elif host_os_family != 'windows'
|
||||
symscript = 'frida-server.version'
|
||||
extra_link_args += ['-Wl,--version-script,' + join_paths(meson.current_source_dir(), symscript)]
|
||||
extra_link_args += ['-Wl,--version-script,' + meson.current_source_dir() / symscript]
|
||||
extra_link_depends += [symscript]
|
||||
endif
|
||||
if host_os == 'macos'
|
||||
server_plist = 'frida-server.plist'
|
||||
extra_link_args += ['-Wl,-sectcreate,__TEXT,__info_plist,' + join_paths(meson.current_source_dir(), server_plist)]
|
||||
extra_link_args += ['-Wl,-sectcreate,__TEXT,__info_plist,' + meson.current_source_dir() / server_plist]
|
||||
extra_link_depends += [server_plist]
|
||||
endif
|
||||
|
||||
raw_server = executable('frida-server-raw', server_sources,
|
||||
vala_args: ['--pkg=posix'],
|
||||
vala_args: [core_vala_args, '--pkg=posix'],
|
||||
link_args: extra_link_args,
|
||||
link_depends: extra_link_depends,
|
||||
dependencies: [core_dep],
|
||||
)
|
||||
|
||||
custom_target('frida-server',
|
||||
input: [
|
||||
raw_server,
|
||||
'frida-server.xcent',
|
||||
],
|
||||
output: 'frida-server' + exe_suffix,
|
||||
command: [
|
||||
files('post-process.sh'),
|
||||
'@INPUT@',
|
||||
'@OUTPUT@',
|
||||
host_os,
|
||||
'>>>', strip, '<<<',
|
||||
get_option('strip').to_string(),
|
||||
codesign,
|
||||
],
|
||||
server_name = 'frida-server' + exe_suffix
|
||||
need_universal_server = get_option('assets') == 'installed' and server_compat != ''
|
||||
|
||||
server = custom_target('frida-server',
|
||||
input: [raw_server, 'frida-server.xcent'],
|
||||
output: need_universal_server ? f'@server_name@-@host_abi@' : server_name,
|
||||
command: post_process + ['executable', 're.frida.Server', '@INPUT1@'],
|
||||
install: true,
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
|
||||
if need_universal_server
|
||||
custom_target('frida-server-universal',
|
||||
input: server,
|
||||
output: server_name,
|
||||
command: [
|
||||
lipo,
|
||||
'@INPUT@',
|
||||
server_compat,
|
||||
'-create',
|
||||
'-output', meson.current_build_dir() / server_name
|
||||
],
|
||||
depends: server_depends,
|
||||
install: true,
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
endif
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
input_server_path=$1
|
||||
input_entitlements_path=$2
|
||||
output_server_path=$3
|
||||
host_os=$4
|
||||
strip_command=()
|
||||
if [ "$5" = ">>>" ]; then
|
||||
shift 5
|
||||
while true; do
|
||||
cur=$1
|
||||
shift 1
|
||||
if [ "$cur" = "<<<" ]; then
|
||||
break
|
||||
fi
|
||||
strip_command+=("$cur")
|
||||
done
|
||||
else
|
||||
echo "Invalid argument" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
strip_enabled=$1
|
||||
codesign=$2
|
||||
|
||||
case $host_os in
|
||||
macos)
|
||||
if [ -z "$MACOS_CERTID" ]; then
|
||||
echo "MACOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
ios)
|
||||
if [ -z "$IOS_CERTID" ]; then
|
||||
echo "IOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
tvos)
|
||||
if [ -z "$TVOS_CERTID" ]; then
|
||||
echo "TVOS_CERTID not set, see https://github.com/frida/frida#apple-oses"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
intermediate_path=$output_server_path.tmp
|
||||
rm -f "$intermediate_path"
|
||||
cp -a "$input_server_path" "$intermediate_path"
|
||||
|
||||
if [ "$strip_enabled" = "true" ]; then
|
||||
"${strip_command[@]}" "$intermediate_path" || exit 1
|
||||
fi
|
||||
|
||||
case $host_os in
|
||||
macos|ios|tvos)
|
||||
case $host_os in
|
||||
macos)
|
||||
"$codesign" -f -s "$MACOS_CERTID" -i "re.frida.Server" "$intermediate_path" || exit 1
|
||||
;;
|
||||
ios)
|
||||
"$codesign" -f -s "$IOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
tvos)
|
||||
"$codesign" -f -s "$TVOS_CERTID" --entitlements "$input_entitlements_path" "$intermediate_path" || exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
mv "$intermediate_path" "$output_server_path"
|
||||
@@ -21,8 +21,11 @@ namespace Frida {
|
||||
public static async AgentContainer create (string agent_filename, Cancellable? cancellable) throws Error, IOError {
|
||||
var container = new AgentContainer ();
|
||||
|
||||
container.module = Module.open (agent_filename, 0);
|
||||
assert (container.module != null);
|
||||
try {
|
||||
container.module = new Module (agent_filename, 0);
|
||||
} catch (ModuleError e) {
|
||||
throw new Error.PERMISSION_DENIED ("%s", e.message);
|
||||
}
|
||||
|
||||
void * main_func_symbol;
|
||||
var main_func_found = container.module.symbol ("frida_agent_main", out main_func_symbol);
|
||||
|
||||
Executable → Regular
+12
-4
@@ -1,5 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
from pathlib import Path
|
||||
@@ -9,8 +7,9 @@ import sys
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Generate refined Frida API definitions")
|
||||
parser.add_argument('--output', dest='output_type', choices=['bundle', 'header', 'vapi'], default='bundle')
|
||||
parser.add_argument('--output', dest='output_type', choices=['bundle', 'header', 'gir', 'vapi', 'vapi-stamp'], default='bundle')
|
||||
parser.add_argument('api_version', metavar='api-version', type=str)
|
||||
parser.add_argument('core_gir', metavar='/path/to/Frida-x.y.gir', type=argparse.FileType('r', encoding='utf-8'))
|
||||
parser.add_argument('core_vapi', metavar='/path/to/frida-core.vapi', type=argparse.FileType('r', encoding='utf-8'))
|
||||
parser.add_argument('core_header', metavar='/path/to/frida-core.h', type=argparse.FileType('r', encoding='utf-8'))
|
||||
parser.add_argument('base_vapi', metavar='/path/to/frida-base.vapi', type=argparse.FileType('r', encoding='utf-8'))
|
||||
@@ -19,13 +18,23 @@ def main():
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
output_type = args.output_type
|
||||
api_version = args.api_version
|
||||
core_gir = args.core_gir.read()
|
||||
core_vapi = args.core_vapi.read()
|
||||
core_header = args.core_header.read()
|
||||
base_vapi = args.base_vapi.read()
|
||||
base_header = args.base_header.read()
|
||||
output_dir = Path(args.output_dir)
|
||||
|
||||
if output_type == 'gir':
|
||||
(output_dir / f"Frida-{api_version}.gir").write_text(core_gir, encoding='utf-8')
|
||||
return
|
||||
|
||||
if output_type == 'vapi-stamp':
|
||||
(output_dir / f"frida-core-{api_version}.vapi.stamp").write_bytes(b"")
|
||||
return
|
||||
|
||||
toplevel_names = [
|
||||
"frida.vala",
|
||||
"control-service.vala",
|
||||
@@ -42,7 +51,6 @@ def main():
|
||||
|
||||
enable_header = False
|
||||
enable_vapi = False
|
||||
output_type = args.output_type
|
||||
if output_type == 'bundle':
|
||||
enable_header = True
|
||||
enable_vapi = True
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def main(argv):
|
||||
lib_binary, libtool_binary, ar_binary = [Path(p) if p else None for p in argv[1:4]]
|
||||
build_dir = Path(argv[4])
|
||||
output_lib = Path(argv[5])
|
||||
input_libs = [Path(p) for p in argv[6:]]
|
||||
|
||||
if lib_binary is not None:
|
||||
subprocess.run([lib_binary, "/nologo", f"/out:{output_lib}"] + input_libs,
|
||||
check=True)
|
||||
elif libtool_binary is not None:
|
||||
subprocess.run([libtool_binary, "-static", "-o", output_lib] + input_libs,
|
||||
check=True)
|
||||
else:
|
||||
mri_lines = [f"create {output_lib}"]
|
||||
for lib in input_libs:
|
||||
command = "addlib" if lib.suffix == ".a" else "addmod"
|
||||
mri_lines += [f"{command} {lib}"]
|
||||
mri_lines += ["save", "end"]
|
||||
|
||||
subprocess.run([ar_binary, "-M"],
|
||||
input="\n".join(mri_lines),
|
||||
encoding="utf-8",
|
||||
check=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
ar_binary="$1"
|
||||
libtool_binary="$2"
|
||||
build_dir="$3"
|
||||
output_lib="$4"
|
||||
shift 4
|
||||
|
||||
if [ -n "$libtool_binary" ]; then
|
||||
exec "$libtool_binary" -static -o "$output_lib" "$@"
|
||||
else
|
||||
priv_dir="$build_dir/frida-core-library@mrg"
|
||||
mri_script="$priv_dir/merge.mri"
|
||||
|
||||
mkdir -p "$priv_dir"
|
||||
|
||||
echo "create $output_lib" > "$mri_script"
|
||||
while [[ $# > 0 ]]; do
|
||||
ext=${1##*.}
|
||||
if [[ "$ext" == 'a' ]]; then
|
||||
echo "addlib $1" >> "$mri_script"
|
||||
else
|
||||
# $1 is *.o or *.so
|
||||
echo "addmod $1" >> "$mri_script"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
echo "save" >> "$mri_script"
|
||||
echo "end" >> "$mri_script"
|
||||
|
||||
exec "$ar_binary" -M < "$mri_script"
|
||||
fi
|
||||
+97
-33
@@ -1,50 +1,73 @@
|
||||
generate_api = files('generate.py')
|
||||
generate_api = [python, files('generate.py')]
|
||||
|
||||
core_vapi = join_paths(core_build_dir, 'frida-core.vapi')
|
||||
core_header = join_paths(core_build_dir, 'frida-core.h')
|
||||
base_vapi = join_paths(base_build_dir, f'frida-base-@[email protected]')
|
||||
base_header = join_paths(base_build_dir, 'frida-base.h')
|
||||
generate_api_args = [
|
||||
api_version,
|
||||
core_build_dir / core_gir_name,
|
||||
core_build_dir / 'frida-core.vapi',
|
||||
core_build_dir / 'frida-core.h',
|
||||
base_build_dir / f'frida-base-@[email protected]',
|
||||
base_build_dir / 'frida-base.h',
|
||||
meson.current_build_dir(),
|
||||
]
|
||||
|
||||
custom_target('frida-core-header',
|
||||
core_public_h = custom_target('frida-core-header',
|
||||
input: [core, base],
|
||||
output: ['frida-core.h'],
|
||||
command: [
|
||||
generate_api,
|
||||
'--output=header',
|
||||
api_version,
|
||||
core_vapi, core_header,
|
||||
base_vapi, base_header,
|
||||
meson.current_build_dir(),
|
||||
generate_api_args,
|
||||
],
|
||||
install: true,
|
||||
install_dir: header_install_dir,
|
||||
)
|
||||
|
||||
custom_target('frida-core-vapi',
|
||||
core_public_gir = custom_target('frida-core-gir',
|
||||
input: [core, base],
|
||||
output: [core_gir_name],
|
||||
command: [
|
||||
generate_api,
|
||||
'--output=gir',
|
||||
generate_api_args,
|
||||
],
|
||||
install: true,
|
||||
install_dir: girdir,
|
||||
)
|
||||
|
||||
core_public_vapi = custom_target('frida-core-vapi',
|
||||
input: [core, base],
|
||||
output: [
|
||||
'frida-core-@[email protected]'.format(api_version),
|
||||
'frida-core-@[email protected]'.format(api_version)
|
||||
f'frida-core-@[email protected]',
|
||||
f'frida-core-@[email protected]',
|
||||
],
|
||||
command: [
|
||||
generate_api,
|
||||
'--output=vapi',
|
||||
api_version,
|
||||
core_vapi, core_header,
|
||||
base_vapi, base_header,
|
||||
meson.current_build_dir(),
|
||||
generate_api_args,
|
||||
],
|
||||
install: true,
|
||||
install_dir: join_paths(get_option('datadir'), 'vala', 'vapi'),
|
||||
install_dir: vapidir,
|
||||
)
|
||||
|
||||
custom_target('frida-core-library',
|
||||
input: [core] + internal_libs,
|
||||
output: 'libfrida-core-@[email protected]'.format(api_version),
|
||||
core_public_vapi_stamp = custom_target('frida-core-vapi-stamp',
|
||||
input: core_public_vapi,
|
||||
output: f'frida-core-@[email protected]',
|
||||
command: [
|
||||
files('merge.sh'),
|
||||
ar,
|
||||
generate_api,
|
||||
'--output=vapi-stamp',
|
||||
generate_api_args,
|
||||
],
|
||||
)
|
||||
|
||||
core_public_lib = custom_target('frida-core-library',
|
||||
input: [core] + internal_libs,
|
||||
output: f'libfrida-core-@[email protected]',
|
||||
command: [
|
||||
python,
|
||||
files('merge.py'),
|
||||
lib,
|
||||
libtool,
|
||||
ar,
|
||||
meson.current_build_dir(),
|
||||
'@OUTPUT@',
|
||||
'@INPUT@'
|
||||
@@ -53,14 +76,55 @@ custom_target('frida-core-library',
|
||||
install_dir: get_option('libdir'),
|
||||
)
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(filebase: 'frida-core-' + api_version,
|
||||
name: 'Frida Core',
|
||||
version: meson.project_version(),
|
||||
description: 'Frida core library intended for static linking into bindings',
|
||||
requires: ['glib-2.0', 'gobject-2.0', 'gio-2.0', 'json-glib-1.0'],
|
||||
requires_private: ['gmodule-2.0', 'gee-0.8', libsoup_dep, 'frida-gum-1.0', 'frida-gumjs-inspector-1.0', 'libbrotlidec'] + backend_deps_private,
|
||||
subdirs: 'frida-' + api_version,
|
||||
libraries: ['-L${libdir}', '-lfrida-core-' + api_version],
|
||||
libraries_private: backend_libs_private,
|
||||
fs = import('fs')
|
||||
|
||||
core_public_extra_headers = []
|
||||
if host_os == 'android'
|
||||
core_public_extra_headers += fs.copyfile(frida_selinux_h)
|
||||
endif
|
||||
|
||||
if build_machine.system() == 'windows'
|
||||
uninstalled_incdir = fs.as_posix(meson.current_build_dir())
|
||||
else
|
||||
uninstalled_incdir = meson.current_build_dir()
|
||||
endif
|
||||
uninstalled_vapidir = uninstalled_incdir
|
||||
|
||||
core_public_dep = declare_dependency(
|
||||
sources: [core_public_h, core_public_gir, core_public_vapi_stamp, core_public_extra_headers],
|
||||
include_directories: include_directories('.'),
|
||||
link_args: backend_libs_private,
|
||||
link_with: core_public_lib,
|
||||
dependencies: core_deps,
|
||||
variables: {
|
||||
'frida_includedir': uninstalled_incdir,
|
||||
'frida_girdir': uninstalled_girdir,
|
||||
'frida_vapidir': uninstalled_vapidir,
|
||||
},
|
||||
)
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(
|
||||
filebase: f'frida-core-@api_version@',
|
||||
name: 'Frida Core Library',
|
||||
version: frida_version,
|
||||
description: 'Instrumentation toolkit for developers, reverse-engineers, and security researchers',
|
||||
requires: ['glib-2.0', 'gobject-2.0', 'gio-2.0', 'json-glib-1.0'],
|
||||
requires_private: ['gmodule-2.0', 'gee-0.8', 'libsoup-3.0', 'frida-gum-1.0', 'frida-gumjs-inspector-1.0', 'libbrotlidec'] + backend_reqs_private,
|
||||
subdirs: f'frida-@api_version@',
|
||||
libraries: core_public_lib,
|
||||
libraries_private: backend_libs_private,
|
||||
extra_cflags: ['-I${frida_includedir}'],
|
||||
variables: {
|
||||
'frida_includedir': '${includedir}',
|
||||
'frida_girdir': girdir,
|
||||
'frida_vapidir': vapidir,
|
||||
},
|
||||
uninstalled_variables: {
|
||||
'frida_includedir': uninstalled_incdir,
|
||||
'frida_girdir': uninstalled_girdir,
|
||||
'frida_vapidir': uninstalled_vapidir,
|
||||
},
|
||||
)
|
||||
|
||||
meson.override_dependency(f'frida-core-@api_version@', core_public_dep)
|
||||
@@ -343,7 +343,7 @@ namespace Frida {
|
||||
assert (frida_context != null);
|
||||
assert (dbus_context != null);
|
||||
|
||||
transmitter = new AgentMessageTransmitter (persist_timeout, frida_context, dbus_context);
|
||||
transmitter = new AgentMessageTransmitter (this, persist_timeout, frida_context, dbus_context);
|
||||
transmitter.closed.connect (on_transmitter_closed);
|
||||
transmitter.new_candidates.connect (on_transmitter_new_candidates);
|
||||
transmitter.candidate_gathering_done.connect (on_transmitter_candidate_gathering_done);
|
||||
@@ -555,15 +555,4 @@ namespace Frida {
|
||||
private static void throw_not_supported () throws Error {
|
||||
throw new Error.NOT_SUPPORTED ("Not yet supported");
|
||||
}
|
||||
|
||||
private static uint uint64_hash (uint64? val) {
|
||||
uint64 v = val;
|
||||
return (uint) ((v >> 32) ^ (v & 0xffffffffU));
|
||||
}
|
||||
|
||||
private static bool uint64_equal (uint64? val_a, uint64? val_b) {
|
||||
uint64 a = val_a;
|
||||
uint64 b = val_b;
|
||||
return a == b;
|
||||
}
|
||||
}
|
||||
Executable → Regular
+18
-36
@@ -1,54 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
import platform
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def generate_runtime(input_dir, output_dir):
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
def main(argv):
|
||||
output_dir, priv_dir, input_dir, npm = [Path(d).resolve() for d in argv[1:]]
|
||||
|
||||
shutil.copy(input_dir / "package.json", output_dir)
|
||||
shutil.copy(input_dir / "package-lock.json", output_dir)
|
||||
try:
|
||||
generate_runtime(output_dir, priv_dir, input_dir, npm)
|
||||
except Exception as e:
|
||||
print(e, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def generate_runtime(output_dir, priv_dir, input_dir, npm):
|
||||
priv_dir.mkdir(exist_ok=True)
|
||||
|
||||
shutil.copy(input_dir / "package.json", priv_dir)
|
||||
shutil.copy(input_dir / "package-lock.json", priv_dir)
|
||||
|
||||
runtime_reldir = Path("script-runtime")
|
||||
runtime_srcdir = input_dir / runtime_reldir
|
||||
runtime_intdir = output_dir / runtime_reldir
|
||||
runtime_intdir = priv_dir / runtime_reldir
|
||||
if runtime_intdir.exists():
|
||||
shutil.rmtree(runtime_intdir)
|
||||
shutil.copytree(runtime_srcdir, runtime_intdir)
|
||||
|
||||
npm = os.environ.get("NPM", make_script_filename("npm"))
|
||||
try:
|
||||
subprocess.run([npm, "install"], capture_output=True, cwd=output_dir, check=True)
|
||||
except Exception as e:
|
||||
message = "\n".join([
|
||||
"",
|
||||
"***",
|
||||
"Failed to bootstrap the Barebone backend script runtime:",
|
||||
"\t" + str(e),
|
||||
"It appears Node.js is not installed.",
|
||||
"We need it for processing JavaScript code at build-time.",
|
||||
"Check PATH or set NPM to the absolute path of your npm binary.",
|
||||
"***\n",
|
||||
])
|
||||
raise EnvironmentError(message)
|
||||
subprocess.run([npm, "install"], capture_output=True, cwd=priv_dir, check=True)
|
||||
|
||||
|
||||
def make_script_filename(name):
|
||||
build_os = platform.system().lower()
|
||||
extension = ".cmd" if build_os == "windows" else ""
|
||||
return name + extension
|
||||
shutil.copy(priv_dir / "script-runtime.js", output_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
input_dir, output_dir = [Path(d).resolve() for d in sys.argv[1:3]]
|
||||
|
||||
try:
|
||||
generate_runtime(input_dir, output_dir)
|
||||
except Exception as e:
|
||||
print(e, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
main(sys.argv)
|
||||
@@ -20,12 +20,13 @@ namespace Frida.Barebone {
|
||||
private GDB.Client gdb;
|
||||
|
||||
private Gee.Map<uint64?, BreakpointEntry> breakpoint_entries =
|
||||
new Gee.HashMap<uint64?, BreakpointEntry> (uint64_hash, uint64_equal);
|
||||
new Gee.HashMap<uint64?, BreakpointEntry> (Numeric.uint64_hash, Numeric.uint64_equal);
|
||||
private Gee.Map<string, CallStack> call_stacks = new Gee.HashMap<string, CallStack> ();
|
||||
private Gee.MultiMap<uint64?, CallStack> pending_returns =
|
||||
new Gee.HashMultiMap<uint64?, CallStack> (uint64_hash, uint64_equal);
|
||||
new Gee.HashMultiMap<uint64?, CallStack> (Numeric.uint64_hash, Numeric.uint64_equal);
|
||||
|
||||
private Gee.Map<uint64?, InlineHook> inline_hooks = new Gee.HashMap<uint64?, InlineHook> (uint64_hash, uint64_equal);
|
||||
private Gee.Map<uint64?, InlineHook> inline_hooks =
|
||||
new Gee.HashMap<uint64?, InlineHook> (Numeric.uint64_hash, Numeric.uint64_equal);
|
||||
|
||||
private Cancellable io_cancellable = new Cancellable ();
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ namespace Frida.Barebone {
|
||||
return true;
|
||||
});
|
||||
|
||||
var relocated_buf = new Buffer (
|
||||
new Bytes (module.get_file_data ()[file_start:file_end]), gdb.pointer_size, gdb.byte_order);
|
||||
var relocated_buf = gdb.make_buffer (new Bytes (module.get_file_data ()[file_start:file_end]));
|
||||
Error? pending_error = null;
|
||||
module.enumerate_relocations (r => {
|
||||
unowned string parent_section = (r.parent != null) ? r.parent.name : "";
|
||||
|
||||
+61
-62
@@ -1,63 +1,62 @@
|
||||
barebone_sources = []
|
||||
backend_sources += files(
|
||||
'barebone-host-session.vala',
|
||||
'script.vala',
|
||||
'machine.vala',
|
||||
'allocator.vala',
|
||||
'callback.vala',
|
||||
'memory-scanner.vala',
|
||||
'interceptor.vala',
|
||||
'rust-module.vala',
|
||||
'arch-x86' / 'machine.vala',
|
||||
'arch-x86_64' / 'machine.vala',
|
||||
'arch-arm' / 'machine.vala',
|
||||
'arch-arm64' / 'machine.vala',
|
||||
'arch-unknown' / 'machine.vala',
|
||||
)
|
||||
barebone_script_runtime = custom_target('frida-barebone-script-runtime',
|
||||
input: [
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'script-runtime' / 'console.ts',
|
||||
'script-runtime' / 'entrypoint.ts',
|
||||
'script-runtime' / 'gdb.ts',
|
||||
'script-runtime' / 'hexdump.ts',
|
||||
'script-runtime' / 'message-dispatcher.ts',
|
||||
'script-runtime' / 'primitives.ts',
|
||||
],
|
||||
output: [
|
||||
'script-runtime.js',
|
||||
],
|
||||
command: [
|
||||
python,
|
||||
files('generate-script-runtime.py'),
|
||||
meson.current_build_dir(),
|
||||
'@PRIVATE_DIR@',
|
||||
meson.current_source_dir(),
|
||||
npm,
|
||||
],
|
||||
)
|
||||
backend_sources += custom_target('frida-data-barebone',
|
||||
input: [
|
||||
'barebone.resources',
|
||||
barebone_script_runtime,
|
||||
'helpers/memory-scanner-arm64.elf',
|
||||
],
|
||||
output: [
|
||||
'frida-data-barebone.vapi',
|
||||
'frida-data-barebone.h',
|
||||
'frida-data-barebone.c',
|
||||
'frida-data-barebone-blob' + resource_blob_extension,
|
||||
],
|
||||
command: [
|
||||
resource_compiler_cmd_array,
|
||||
'-c', '@INPUT0@',
|
||||
'-o', meson.current_build_dir() / 'frida-data-barebone',
|
||||
'@INPUT1@',
|
||||
'@INPUT2@',
|
||||
],
|
||||
)
|
||||
|
||||
if quickjs_dep.found()
|
||||
barebone_sources += files(
|
||||
'barebone-host-session.vala',
|
||||
'script.vala',
|
||||
'machine.vala',
|
||||
'allocator.vala',
|
||||
'callback.vala',
|
||||
'memory-scanner.vala',
|
||||
'interceptor.vala',
|
||||
'rust-module.vala',
|
||||
'arch-x86/machine.vala',
|
||||
'arch-x86_64/machine.vala',
|
||||
'arch-arm/machine.vala',
|
||||
'arch-arm64/machine.vala',
|
||||
'arch-unknown/machine.vala',
|
||||
)
|
||||
barebone_script_runtime = custom_target('frida-barebone-script-runtime',
|
||||
input: [
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'script-runtime/console.ts',
|
||||
'script-runtime/entrypoint.ts',
|
||||
'script-runtime/gdb.ts',
|
||||
'script-runtime/hexdump.ts',
|
||||
'script-runtime/message-dispatcher.ts',
|
||||
'script-runtime/primitives.ts',
|
||||
],
|
||||
output: [
|
||||
'script-runtime.js',
|
||||
],
|
||||
command: [
|
||||
find_program('generate-script-runtime.py'),
|
||||
meson.current_source_dir(),
|
||||
meson.current_build_dir(),
|
||||
],
|
||||
)
|
||||
barebone_data = custom_target('frida-data-barebone',
|
||||
input: [
|
||||
'barebone.resources',
|
||||
barebone_script_runtime,
|
||||
'helpers/memory-scanner-arm64.elf',
|
||||
],
|
||||
output: [
|
||||
'frida-data-barebone.vapi',
|
||||
'frida-data-barebone.h',
|
||||
'frida-data-barebone.c',
|
||||
'frida-data-barebone-blob.S',
|
||||
],
|
||||
command: [
|
||||
resource_compiler,
|
||||
'--toolchain=' + host_toolchain,
|
||||
'-c', '@INPUT0@',
|
||||
'-o', join_paths(meson.current_build_dir(), 'frida-data-barebone'),
|
||||
'@INPUT1@',
|
||||
'@INPUT2@',
|
||||
],
|
||||
)
|
||||
barebone_sources += barebone_data
|
||||
|
||||
backend_deps += quickjs_dep
|
||||
endif
|
||||
backend_vala_args += gum_vala_args
|
||||
backend_vala_args_private += '--pkg=quickjs'
|
||||
backend_deps += quickjs_dep
|
||||
@@ -0,0 +1,3 @@
|
||||
[resource-compiler]
|
||||
namespace = Frida.Data.Compiler
|
||||
compress = *.js:text:7; *.bin:generic:7
|
||||
File renamed without changes.
@@ -10,17 +10,20 @@ namespace Frida {
|
||||
construct;
|
||||
}
|
||||
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
private Promise<Agent>? load_request;
|
||||
private Gee.Map<uint, MonitorEntry> monitors = new Gee.HashMap<uint, MonitorEntry> ();
|
||||
private Gee.Set<MonitorEntry> dirty_monitors = new Gee.HashSet<MonitorEntry> ();
|
||||
private TimeoutSource? monitor_flush_timer;
|
||||
|
||||
private Cancellable io_cancellable = new Cancellable ();
|
||||
#endif
|
||||
|
||||
public Compiler (DeviceManager manager) {
|
||||
Object (manager: manager);
|
||||
}
|
||||
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
public override void dispose () {
|
||||
if (load_request != null)
|
||||
close.begin ();
|
||||
@@ -45,9 +48,11 @@ namespace Frida {
|
||||
detach_monitor_entry (entry);
|
||||
monitors.clear ();
|
||||
}
|
||||
#endif
|
||||
|
||||
public async string build (string entrypoint, BuildOptions? options = null, Cancellable? cancellable = null)
|
||||
throws Error, IOError {
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
var agent = yield get_agent (cancellable);
|
||||
|
||||
starting ();
|
||||
@@ -60,6 +65,9 @@ namespace Frida {
|
||||
} finally {
|
||||
finished ();
|
||||
}
|
||||
#else
|
||||
throw_not_supported ();
|
||||
#endif
|
||||
}
|
||||
|
||||
public string build_sync (string entrypoint, BuildOptions? options = null, Cancellable? cancellable = null)
|
||||
@@ -81,9 +89,13 @@ namespace Frida {
|
||||
|
||||
public async void watch (string entrypoint, WatchOptions? options = null, Cancellable? cancellable = null)
|
||||
throws Error, IOError {
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
var agent = yield get_agent (cancellable);
|
||||
|
||||
yield agent.watch (entrypoint, options, cancellable);
|
||||
#else
|
||||
throw_not_supported ();
|
||||
#endif
|
||||
}
|
||||
|
||||
public void watch_sync (string entrypoint, WatchOptions? options = null, Cancellable? cancellable = null)
|
||||
@@ -103,6 +115,7 @@ namespace Frida {
|
||||
}
|
||||
}
|
||||
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
private void on_watch_add (uint id, string path, string type, int64 polling_interval) {
|
||||
var file = File.parse_name (path);
|
||||
|
||||
@@ -197,6 +210,12 @@ namespace Frida {
|
||||
load_request = null;
|
||||
}
|
||||
}
|
||||
#else
|
||||
[NoReturn]
|
||||
private void throw_not_supported () throws Error {
|
||||
throw new Error.NOT_SUPPORTED ("Compiler backend disabled at build-time");
|
||||
}
|
||||
#endif
|
||||
|
||||
private T create<T> () {
|
||||
return Object.new (typeof (T), parent: this);
|
||||
@@ -209,6 +228,7 @@ namespace Frida {
|
||||
}
|
||||
}
|
||||
|
||||
#if HAVE_COMPILER_BACKEND
|
||||
private class Agent : InternalAgent {
|
||||
public weak Compiler parent {
|
||||
get;
|
||||
@@ -423,6 +443,7 @@ namespace Frida {
|
||||
MODIFIED,
|
||||
DELETED,
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
public class CompilerOptions : Object {
|
||||
|
||||
Executable → Regular
+44
-55
@@ -1,8 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
import platform
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -20,43 +16,52 @@ INPUTS = [
|
||||
]
|
||||
|
||||
|
||||
def generate_agent(input_dir, output_dir, host_os_family, host_arch, host_cpu_mode, v8_mksnapshot):
|
||||
npm = os.environ.get("NPM", make_script_filename("npm"))
|
||||
def main(argv):
|
||||
output_dir, priv_dir, input_dir, npm, v8_mksnapshot = [Path(d).resolve() if d else None for d in argv[1:6]]
|
||||
host_os_family, host_arch, host_cpu_mode = argv[6:9]
|
||||
|
||||
try:
|
||||
generate_agent(output_dir, priv_dir, input_dir, npm, v8_mksnapshot, host_os_family, host_arch, host_cpu_mode)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(e, file=sys.stderr)
|
||||
print("Output:\n\t| " + "\n\t| ".join(e.output.strip().split("\n")), file=sys.stderr)
|
||||
sys.exit(2)
|
||||
except Exception as e:
|
||||
print(e, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def generate_agent(output_dir, priv_dir, input_dir, npm, v8_mksnapshot, host_os_family, host_arch, host_cpu_mode):
|
||||
entrypoint = input_dir / "agent-entrypoint.js"
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
priv_dir.mkdir(exist_ok=True)
|
||||
for name in INPUTS:
|
||||
if name == "agent-entrypoint.js":
|
||||
continue
|
||||
shutil.copyfile(input_dir / name, output_dir / name)
|
||||
shutil.copy(input_dir / name, priv_dir / name)
|
||||
|
||||
try:
|
||||
subprocess.run([npm, "install"], capture_output=True, cwd=output_dir, check=True)
|
||||
#subprocess.run([npm, "link", "/Users/oleavr/src/frida-compile"], capture_output=True, cwd=output_dir, check=True)
|
||||
except Exception as e:
|
||||
message = "\n".join([
|
||||
"",
|
||||
"***",
|
||||
"Failed to bootstrap the compiler agent:",
|
||||
"\t" + str(e),
|
||||
"It appears Node.js is not installed.",
|
||||
"We need it for processing JavaScript code at build-time.",
|
||||
"Check PATH or set NPM to the absolute path of your npm binary.",
|
||||
"***\n",
|
||||
])
|
||||
raise EnvironmentError(message)
|
||||
run_kwargs = {
|
||||
"cwd": priv_dir,
|
||||
"stdout": subprocess.PIPE,
|
||||
"stderr": subprocess.STDOUT,
|
||||
"encoding": "utf-8",
|
||||
"check": True,
|
||||
}
|
||||
|
||||
subprocess.run([npm, "install"], **run_kwargs)
|
||||
#subprocess.run([npm, "link", "/Users/oleavr/src/frida-compile"], **run_kwargs)
|
||||
|
||||
components = ["typescript", "agent-core"]
|
||||
for component in components:
|
||||
subprocess.run([
|
||||
npm, "run", "build:" + component,
|
||||
"--",
|
||||
"--environment", f"FRIDA_HOST_OS_FAMILY:{host_os_family},FRIDA_HOST_ARCH:{host_arch},FRIDA_HOST_CPU_MODE:{host_cpu_mode}",
|
||||
"--silent",
|
||||
], cwd=output_dir, check=True)
|
||||
npm, "run", "build:" + component,
|
||||
"--",
|
||||
"--environment", f"FRIDA_HOST_OS_FAMILY:{host_os_family},FRIDA_HOST_ARCH:{host_arch},FRIDA_HOST_CPU_MODE:{host_cpu_mode}",
|
||||
"--silent",
|
||||
],
|
||||
**run_kwargs)
|
||||
chunks = []
|
||||
for component in components:
|
||||
script = (output_dir / f"{component}.js").read_text(encoding="utf-8")
|
||||
script = (priv_dir / f"{component}.js").read_text(encoding="utf-8")
|
||||
chunks.append(script)
|
||||
components_source = "\n".join(chunks)
|
||||
|
||||
@@ -64,15 +69,16 @@ def generate_agent(input_dir, output_dir, host_os_family, host_arch, host_cpu_mo
|
||||
snapshot = output_dir / "snapshot.bin"
|
||||
|
||||
if v8_mksnapshot is not None:
|
||||
shutil.copyfile(entrypoint, agent)
|
||||
(output_dir / "embed.js").write_text(components_source, encoding="utf-8")
|
||||
shutil.copy(entrypoint, agent)
|
||||
(priv_dir / "embed.js").write_text(components_source, encoding="utf-8")
|
||||
subprocess.run([
|
||||
v8_mksnapshot,
|
||||
"--turbo-instruction-scheduling",
|
||||
"--startup-blob=snapshot.bin",
|
||||
"embed.js",
|
||||
input_dir / "agent-warmup.js",
|
||||
], cwd=output_dir, check=True)
|
||||
v8_mksnapshot,
|
||||
"--turbo-instruction-scheduling",
|
||||
f"--startup-blob={snapshot}",
|
||||
"embed.js",
|
||||
input_dir / "agent-warmup.js",
|
||||
],
|
||||
**run_kwargs)
|
||||
else:
|
||||
agent.write_text("\n".join([
|
||||
components_source,
|
||||
@@ -80,23 +86,6 @@ def generate_agent(input_dir, output_dir, host_os_family, host_arch, host_cpu_mo
|
||||
]), encoding="utf-8")
|
||||
snapshot.write_bytes(b"")
|
||||
|
||||
def make_script_filename(name):
|
||||
build_os = platform.system().lower()
|
||||
extension = ".cmd" if build_os == "windows" else ""
|
||||
return name + extension
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
input_dir, output_dir = [Path(d).resolve() for d in sys.argv[1:3]]
|
||||
host_os_family, host_arch, host_cpu_mode = sys.argv[3:6]
|
||||
v8_mksnapshot = sys.argv[6]
|
||||
if v8_mksnapshot != "":
|
||||
v8_mksnapshot = Path(v8_mksnapshot)
|
||||
else:
|
||||
v8_mksnapshot = None
|
||||
|
||||
try:
|
||||
generate_agent(input_dir, output_dir, host_os_family, host_arch, host_cpu_mode, v8_mksnapshot)
|
||||
except Exception as e:
|
||||
print(e, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
main(sys.argv)
|
||||
+62
-53
@@ -2,57 +2,66 @@ compiler_sources = files(
|
||||
'compiler.vala',
|
||||
)
|
||||
|
||||
if get_option('compiler_snapshot').auto()
|
||||
# Generating our snapshot with V8's CPU simulator takes a very long time.
|
||||
use_snapshot = meson.can_run_host_binaries()
|
||||
else
|
||||
use_snapshot = get_option('compiler_snapshot').enabled()
|
||||
endif
|
||||
compiler_mksnapshot = use_snapshot ? v8_mksnapshot : ''
|
||||
if have_compiler_backend
|
||||
if get_option('compiler_snapshot').auto()
|
||||
# Generating our snapshot with V8's CPU simulator takes a very long time.
|
||||
use_snapshot = meson.can_run_host_binaries()
|
||||
else
|
||||
use_snapshot = get_option('compiler_snapshot').enabled()
|
||||
endif
|
||||
compiler_mksnapshot = use_snapshot ? v8_mksnapshot : ''
|
||||
|
||||
compiler_agent = custom_target('frida-compiler-agent',
|
||||
input: [
|
||||
'agent-entrypoint.js',
|
||||
'agent-core.ts',
|
||||
'agent-warmup.js',
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'tsconfig.json',
|
||||
'rollup.config.agent-core.ts',
|
||||
'rollup.config.typescript.ts',
|
||||
],
|
||||
output: [
|
||||
'agent.js',
|
||||
'snapshot.bin',
|
||||
],
|
||||
command: [
|
||||
find_program('generate-agent.py'),
|
||||
meson.current_source_dir(),
|
||||
meson.current_build_dir(),
|
||||
host_os_family,
|
||||
host_arch_gumjs,
|
||||
host_cpu_mode,
|
||||
compiler_mksnapshot,
|
||||
],
|
||||
)
|
||||
compiler_data = custom_target('frida-data-compiler',
|
||||
input: [
|
||||
'compiler.resources',
|
||||
compiler_agent,
|
||||
],
|
||||
output: [
|
||||
'frida-data-compiler.vapi',
|
||||
'frida-data-compiler.h',
|
||||
'frida-data-compiler.c',
|
||||
'frida-data-compiler-blob.S',
|
||||
],
|
||||
command: [
|
||||
resource_compiler,
|
||||
'--toolchain=' + host_toolchain,
|
||||
'-c', '@INPUT0@',
|
||||
'-o', join_paths(meson.current_build_dir(), 'frida-data-compiler'),
|
||||
'@INPUT1@',
|
||||
'@INPUT2@',
|
||||
],
|
||||
)
|
||||
compiler_sources += compiler_data
|
||||
compiler_agent = custom_target('frida-compiler-agent',
|
||||
input: [
|
||||
'agent-entrypoint.js',
|
||||
'agent-core.ts',
|
||||
'agent-warmup.js',
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'tsconfig.json',
|
||||
'rollup.config.agent-core.ts',
|
||||
'rollup.config.typescript.ts',
|
||||
],
|
||||
output: [
|
||||
'agent.js',
|
||||
'snapshot.bin',
|
||||
],
|
||||
command: [
|
||||
python,
|
||||
files('generate-agent.py'),
|
||||
meson.current_build_dir(),
|
||||
'@PRIVATE_DIR@',
|
||||
meson.current_source_dir(),
|
||||
npm,
|
||||
compiler_mksnapshot,
|
||||
host_os_family,
|
||||
host_arch_gumjs,
|
||||
host_cpu_mode,
|
||||
],
|
||||
)
|
||||
compiler_data = custom_target('frida-data-compiler',
|
||||
input: [
|
||||
'compiler.resources.' + frida_profile,
|
||||
compiler_agent,
|
||||
],
|
||||
output: [
|
||||
'frida-data-compiler.vapi',
|
||||
'frida-data-compiler.h',
|
||||
'frida-data-compiler.c',
|
||||
'frida-data-compiler-blob' + resource_blob_extension,
|
||||
'frida-data-compiler-agent.js.br',
|
||||
'frida-data-compiler-snapshot.bin.br',
|
||||
],
|
||||
command: [
|
||||
resource_compiler_cmd_array,
|
||||
'-c', '@INPUT0@',
|
||||
'-o', meson.current_build_dir() / 'frida-data-compiler',
|
||||
'@INPUT1@',
|
||||
'@INPUT2@',
|
||||
],
|
||||
)
|
||||
compiler_sources += compiler_data
|
||||
|
||||
backend_vala_args_private += '--pkg=libbrotlidec'
|
||||
backend_deps_private += brotlidec_dep
|
||||
endif
|
||||
Generated
+7
-7
@@ -17,7 +17,7 @@
|
||||
"@rollup/plugin-node-resolve": "^14.1.0",
|
||||
"@rollup/plugin-replace": "^4.0.0",
|
||||
"@rollup/plugin-typescript": "^8.3.4",
|
||||
"@types/frida-gum": "18.6.0",
|
||||
"@types/frida-gum": "18.7.0",
|
||||
"@types/glob": "^8.0.0",
|
||||
"@types/node": "18.7.23",
|
||||
"glob": "^8.0.3",
|
||||
@@ -468,9 +468,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/frida-gum": {
|
||||
"version": "18.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/frida-gum/-/frida-gum-18.6.0.tgz",
|
||||
"integrity": "sha512-ormuA2e76JqIzqLyuwrHphsCTUdo+ATnH+lQf6INKFn3BpZVex7BQgNUMTSHpmAK38peOMBLzR+DgJUkqTgaKw==",
|
||||
"version": "18.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/frida-gum/-/frida-gum-18.7.0.tgz",
|
||||
"integrity": "sha512-HhBomXE23fLDAWXEKi3BjJLrlH9wAv9IEQNfO/PaYHQNNbh0Bi06gx6JbXTspVpbqlbVqkWAuU7n6HaS9B6yXA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/glob": {
|
||||
@@ -1465,9 +1465,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/frida-gum": {
|
||||
"version": "18.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/frida-gum/-/frida-gum-18.6.0.tgz",
|
||||
"integrity": "sha512-ormuA2e76JqIzqLyuwrHphsCTUdo+ATnH+lQf6INKFn3BpZVex7BQgNUMTSHpmAK38peOMBLzR+DgJUkqTgaKw==",
|
||||
"version": "18.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/frida-gum/-/frida-gum-18.7.0.tgz",
|
||||
"integrity": "sha512-HhBomXE23fLDAWXEKi3BjJLrlH9wAv9IEQNfO/PaYHQNNbh0Bi06gx6JbXTspVpbqlbVqkWAuU7n6HaS9B6yXA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/glob": {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"@rollup/plugin-node-resolve": "^14.1.0",
|
||||
"@rollup/plugin-replace": "^4.0.0",
|
||||
"@rollup/plugin-typescript": "^8.3.4",
|
||||
"@types/frida-gum": "18.6.0",
|
||||
"@types/frida-gum": "18.7.0",
|
||||
"@types/glob": "^8.0.0",
|
||||
"@types/node": "18.7.23",
|
||||
"glob": "^8.0.3",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
namespace Frida {
|
||||
#if HAVE_LOCAL_BACKEND
|
||||
public class ControlService : Object {
|
||||
public HostSession host_session {
|
||||
get;
|
||||
@@ -858,6 +859,54 @@ namespace Frida {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
public class ControlService : Object {
|
||||
public ControlService (EndpointParameters endpoint_params, ControlServiceOptions? options = null) {
|
||||
}
|
||||
|
||||
public ControlService.with_host_session (HostSession host_session, EndpointParameters endpoint_params,
|
||||
ControlServiceOptions? options = null) {
|
||||
}
|
||||
|
||||
public async void start (Cancellable? cancellable = null) throws Error, IOError {
|
||||
throw new Error.NOT_SUPPORTED ("Local backend not available");
|
||||
}
|
||||
|
||||
public void start_sync (Cancellable? cancellable = null) throws Error, IOError {
|
||||
create<StartTask> ().execute (cancellable);
|
||||
}
|
||||
|
||||
private class StartTask : ControlServiceTask<void> {
|
||||
protected override async void perform_operation () throws Error, IOError {
|
||||
yield parent.start (cancellable);
|
||||
}
|
||||
}
|
||||
|
||||
public async void stop (Cancellable? cancellable = null) throws Error, IOError {
|
||||
}
|
||||
|
||||
public void stop_sync (Cancellable? cancellable = null) throws Error, IOError {
|
||||
create<StopTask> ().execute (cancellable);
|
||||
}
|
||||
|
||||
private class StopTask : ControlServiceTask<void> {
|
||||
protected override async void perform_operation () throws Error, IOError {
|
||||
yield parent.stop (cancellable);
|
||||
}
|
||||
}
|
||||
|
||||
private T create<T> () {
|
||||
return Object.new (typeof (T), parent: this);
|
||||
}
|
||||
|
||||
private abstract class ControlServiceTask<T> : AsyncTask<T> {
|
||||
public weak ControlService parent {
|
||||
get;
|
||||
construct;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
public class ControlServiceOptions : Object {
|
||||
public string? sysroot {
|
||||
|
||||
@@ -378,6 +378,7 @@ static FridaSpawnInstance * frida_spawn_instance_new (FridaDarwinHelperBackend *
|
||||
static void frida_spawn_instance_free (FridaSpawnInstance * instance);
|
||||
static void frida_spawn_instance_resume (FridaSpawnInstance * self);
|
||||
|
||||
static void frida_spawn_instance_on_server_cancel (void * context);
|
||||
static void frida_spawn_instance_on_server_recv (void * context);
|
||||
static gboolean frida_spawn_instance_handle_breakpoint (FridaSpawnInstance * self, FridaBreakpoint * breakpoint, GumDarwinUnifiedThreadState * state);
|
||||
static gboolean frida_spawn_instance_handle_dyld_restart (FridaSpawnInstance * self);
|
||||
@@ -412,6 +413,7 @@ static void frida_inject_instance_free (FridaInjectInstance * instance);
|
||||
static gboolean frida_inject_instance_task_did_not_exec (FridaInjectInstance * instance);
|
||||
|
||||
static gboolean frida_inject_instance_start_thread (FridaInjectInstance * self, GError ** error);
|
||||
static void frida_inject_instance_on_thread_monitor_cancel (void * context);
|
||||
static void frida_inject_instance_on_mach_thread_dead (void * context);
|
||||
static void frida_inject_instance_join_posix_thread (FridaInjectInstance * self, mach_port_t posix_thread);
|
||||
static void frida_inject_instance_on_posix_thread_dead (void * context);
|
||||
@@ -2120,11 +2122,7 @@ _frida_darwin_helper_backend_prepare_spawn_instance_for_injection (FridaDarwinHe
|
||||
|
||||
previous_ports = &instance->previous_ports;
|
||||
kr = thread_swap_exception_ports (child_thread,
|
||||
#if __has_feature (ptrauth_calls)
|
||||
EXC_MASK_BAD_ACCESS | EXC_MASK_BREAKPOINT,
|
||||
#else
|
||||
EXC_MASK_BREAKPOINT,
|
||||
#endif
|
||||
EXC_MASK_ALL,
|
||||
instance->server_port,
|
||||
EXCEPTION_DEFAULT,
|
||||
state_flavor,
|
||||
@@ -2138,6 +2136,7 @@ _frida_darwin_helper_backend_prepare_spawn_instance_for_injection (FridaDarwinHe
|
||||
source = dispatch_source_create (DISPATCH_SOURCE_TYPE_MACH_RECV, instance->server_port, 0, ctx->dispatch_queue);
|
||||
instance->server_recv_source = source;
|
||||
dispatch_set_context (source, instance);
|
||||
dispatch_source_set_cancel_handler_f (source, frida_spawn_instance_on_server_cancel);
|
||||
dispatch_source_set_event_handler_f (source, frida_spawn_instance_on_server_recv);
|
||||
dispatch_resume (source);
|
||||
|
||||
@@ -2598,6 +2597,7 @@ frida_inject_instance_start_thread (FridaInjectInstance * self, GError ** error)
|
||||
source = dispatch_source_create (DISPATCH_SOURCE_TYPE_MACH_SEND, self->thread, DISPATCH_MACH_SEND_DEAD, ctx->dispatch_queue);
|
||||
self->thread_monitor_source = source;
|
||||
dispatch_set_context (source, self);
|
||||
dispatch_source_set_cancel_handler_f (source, frida_inject_instance_on_thread_monitor_cancel);
|
||||
dispatch_source_set_event_handler_f (source, frida_inject_instance_on_mach_thread_dead);
|
||||
dispatch_resume (source);
|
||||
|
||||
@@ -2623,6 +2623,15 @@ beach:
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
frida_inject_instance_on_thread_monitor_cancel (void * context)
|
||||
{
|
||||
FridaInjectInstance * self = context;
|
||||
|
||||
dispatch_release (g_steal_pointer (&self->thread_monitor_source));
|
||||
frida_inject_instance_free (self);
|
||||
}
|
||||
|
||||
static void
|
||||
frida_inject_instance_on_mach_thread_dead (void * context)
|
||||
{
|
||||
@@ -2692,6 +2701,7 @@ frida_inject_instance_join_posix_thread (FridaInjectInstance * self, mach_port_t
|
||||
source = dispatch_source_create (DISPATCH_SOURCE_TYPE_MACH_SEND, self->thread, DISPATCH_MACH_SEND_DEAD, ctx->dispatch_queue);
|
||||
self->thread_monitor_source = source;
|
||||
dispatch_set_context (source, self);
|
||||
dispatch_source_set_cancel_handler_f (source, frida_inject_instance_on_thread_monitor_cancel);
|
||||
dispatch_source_set_event_handler_f (source, frida_inject_instance_on_posix_thread_dead);
|
||||
dispatch_resume (source);
|
||||
}
|
||||
@@ -2756,6 +2766,12 @@ frida_spawn_instance_free (FridaSpawnInstance * instance)
|
||||
FridaExceptionPortSet * previous_ports;
|
||||
mach_msg_type_number_t port_index;
|
||||
|
||||
if (instance->server_recv_source != NULL)
|
||||
{
|
||||
dispatch_source_cancel (instance->server_recv_source);
|
||||
return;
|
||||
}
|
||||
|
||||
self_task = mach_task_self ();
|
||||
|
||||
if (instance->do_modinit_strcmp_checks != NULL)
|
||||
@@ -2768,8 +2784,6 @@ frida_spawn_instance_free (FridaSpawnInstance * instance)
|
||||
{
|
||||
mach_port_deallocate (self_task, previous_ports->ports[port_index]);
|
||||
}
|
||||
if (instance->server_recv_source != NULL)
|
||||
dispatch_release (instance->server_recv_source);
|
||||
if (instance->server_port != MACH_PORT_NULL)
|
||||
{
|
||||
mach_port_mod_refs (self_task, instance->server_port, MACH_PORT_RIGHT_SEND, -1);
|
||||
@@ -2821,6 +2835,15 @@ frida_spawn_instance_resume (FridaSpawnInstance * self)
|
||||
frida_spawn_instance_send_breakpoint_response (self);
|
||||
}
|
||||
|
||||
static void
|
||||
frida_spawn_instance_on_server_cancel (void * context)
|
||||
{
|
||||
FridaSpawnInstance * self = context;
|
||||
|
||||
dispatch_release (g_steal_pointer (&self->server_recv_source));
|
||||
frida_spawn_instance_free (self);
|
||||
}
|
||||
|
||||
static void
|
||||
frida_spawn_instance_on_server_recv (void * context)
|
||||
{
|
||||
@@ -2881,6 +2904,9 @@ frida_spawn_instance_on_server_recv (void * context)
|
||||
pc = state.ts_32.__pc;
|
||||
#endif
|
||||
|
||||
if (request->exception != EXC_BREAKPOINT)
|
||||
goto unexpected_exception;
|
||||
|
||||
if (self->single_stepping >= 0)
|
||||
{
|
||||
FridaBreakpoint * bp = &self->breakpoints[self->single_stepping];
|
||||
@@ -4096,10 +4122,14 @@ frida_inject_instance_free (FridaInjectInstance * instance)
|
||||
task_t self_task;
|
||||
gboolean can_deallocate_payload;
|
||||
|
||||
if (instance->thread_monitor_source != NULL)
|
||||
{
|
||||
dispatch_source_cancel (instance->thread_monitor_source);
|
||||
return;
|
||||
}
|
||||
|
||||
self_task = mach_task_self ();
|
||||
|
||||
if (instance->thread_monitor_source != NULL)
|
||||
dispatch_release (instance->thread_monitor_source);
|
||||
if (instance->thread != MACH_PORT_NULL)
|
||||
mach_port_deallocate (self_task, instance->thread);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.enable_spawn_gating (cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.disable_spawn_gating (cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace Frida {
|
||||
try {
|
||||
return yield helper.enumerate_pending_spawn (cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace Frida {
|
||||
try {
|
||||
return yield helper.spawn (path, options, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.launch (identifier, options, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.notify_launch_completed (identifier, pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.notify_exec_completed (pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.wait_until_suspended (pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.cancel_pending_waits (pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.input (pid, data, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.resume (pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.kill_process (pid, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.kill_application (identifier, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ namespace Frida {
|
||||
try {
|
||||
return yield helper.inject_library_file (pid, path, entrypoint, data, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ namespace Frida {
|
||||
try {
|
||||
return yield helper.inject_library_blob (pid, name, blob, entrypoint, data, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.demonitor (id, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace Frida {
|
||||
try {
|
||||
return yield helper.demonitor_and_clone_injectee_state (id, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.recreate_injectee_thread (pid, id, cancellable);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,12 +246,26 @@ namespace Frida {
|
||||
try {
|
||||
yield helper.transfer_socket (remote_pid, remote_socket, cancellable, out remote_address);
|
||||
} catch (GLib.Error e) {
|
||||
throw_dbus_error (e);
|
||||
throw_helper_error (e);
|
||||
}
|
||||
|
||||
return result.future;
|
||||
}
|
||||
|
||||
[NoReturn]
|
||||
private static void throw_helper_error (GLib.Error e) throws Error, IOError {
|
||||
#if MACOS
|
||||
if (e is IOError.CLOSED) {
|
||||
throw new Error.PERMISSION_DENIED ("Oops, frida-helper appears to have crashed. It may have been killed " +
|
||||
"by the system while trying to access a hardened process. If this is the case, try setting these " +
|
||||
"boot arguments: `sudo nvram boot-args=\"-arm64e_preview_abi thid_should_crash=0 " +
|
||||
"tss_should_crash=0\"`. For more information, see: https://github.com/frida/frida-core/issues/524");
|
||||
}
|
||||
#endif
|
||||
|
||||
throw_dbus_error (e);
|
||||
}
|
||||
|
||||
public async MappedLibraryBlob? try_mmap (Bytes blob, Cancellable? cancellable) throws Error, IOError {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -193,8 +193,11 @@ namespace Frida {
|
||||
private uint connection;
|
||||
|
||||
construct {
|
||||
libjailbreak = Module.open (LIBJAILBREAK_PATH, LAZY);
|
||||
assert (libjailbreak != null);
|
||||
try {
|
||||
libjailbreak = new Module (LIBJAILBREAK_PATH, LAZY);
|
||||
} catch (ModuleError e) {
|
||||
assert_not_reached ();
|
||||
}
|
||||
|
||||
jbd_call = resolve_symbol ("jbd_call");
|
||||
assert (jbd_call != null);
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
devkit_outputs = [
|
||||
'frida-core.h',
|
||||
static_lib_prefix + 'frida-core' + static_lib_suffix,
|
||||
'frida-core-example.c',
|
||||
]
|
||||
|
||||
if host_toolchain == 'microsoft'
|
||||
devkit_outputs += [
|
||||
'frida-core-example.sln',
|
||||
'frida-core-example.vcxproj',
|
||||
'frida-core-example.vcxproj.filters',
|
||||
]
|
||||
endif
|
||||
|
||||
custom_target('core-devkit',
|
||||
input: [core_public_h, core_public_vapi, core_public_lib],
|
||||
output: devkit_outputs,
|
||||
command: [
|
||||
mkdevkit,
|
||||
'frida-core',
|
||||
f'@host_os@-@host_arch@',
|
||||
meson.current_build_dir(),
|
||||
] + devkit_options,
|
||||
install: true,
|
||||
install_dir: get_option('libdir') / 'frida' / 'devkits' / 'core'
|
||||
)
|
||||
@@ -810,10 +810,12 @@ namespace Frida.Droidy {
|
||||
}
|
||||
}
|
||||
#if !WINDOWS
|
||||
else if (socket_type == "local" || socket_type == "localfilesystem")
|
||||
else if (socket_type == "local" || socket_type == "localfilesystem") {
|
||||
connectable = new UnixSocketAddress (socket_address);
|
||||
else if (socket_type == "localabstract" && UnixSocketAddress.abstract_names_supported ())
|
||||
connectable = new UnixSocketAddress.as_abstract (socket_address, socket_address.length);
|
||||
} else if (socket_type == "localabstract" && UnixSocketAddress.abstract_names_supported ()) {
|
||||
connectable = new UnixSocketAddress.with_type (socket_address, socket_address.length,
|
||||
ABSTRACT_PADDED);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} else if (env_server_address != null && env_server_port != null) {
|
||||
|
||||
Loaded 100 of 199 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user