Пакеты Android, файлы .apk, представляют собой совершенно другой формат упаковки, чем формат упаковки Ubuntu, файлы .deb.
Помимо различий в упаковке, пакеты Android скомпилированы и настроены для операционной системы Android, toolchain , и архитектура ( .apk ), которая отличается от большинства систем Ubuntu, которые представляют собой 32-разрядную или 64-разрядную архитектуру Intel.
Чтобы запустить и контролировать новый процесс:
strace -f -e trace=network -s 10000 PROCESS ARGUMENTS
Чтобы контролировать существующий процесс с известным PID:
strace -p $PID -f -e trace=network -s 10000
-f для «следовать новым процессам «-e определяет фильтр -s устанавливает предел строк более чем 32 -p принимает идентификатор процесса для присоединения к Я знаю, что эта ветка немного устарела, но я думаю, что это может помочь некоторым из вас:
Если ваше ядро позволяет это, захват сетевого трафика одного процесса очень легко выполняется, запустив указанный процесс в изолированном пространстве имен в сети и использование wirehark (или других стандартных сетевых инструментов) в указанном пространстве имен.
Настройка может показаться немного сложной, но как только вы ее поймете и познакомитесь с ней, облегчит вашу работу.
Чтобы это сделать:
создать пространство имен тестовой сети:ip netns add test
создать пару виртуальных сетевых интерфейсов (veth-a и veth- b): ip link add veth-a type veth peer name veth-b
изменить активное пространство имен интерфейса veth-a: ip link set veth-a netns test
настроить IP-адреса виртуальных интерфейсов: ip netns exec test ifconfig veth-a up 192.168.163.1 netmask 255.255.255.0
ifconfig veth-b up 192.168.163.254 netmask 255.255.255.0
настроить маршрутизацию в пространстве имен тестов: ip netns exec test route add default gw 192.168.163.254 dev veth-a
активировать ip_forward и установить правило NAT для перенаправления трафика, поступающего из созданного вами пространства имен (вам необходимо настроить сетевой интерфейс и IP-адрес SNAT): echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.163.0/24 -o <your internet interface, e.g. eth0> -j SNAT --to-source <your ip address>
(Вы также можете использовать правило MASQUERADE, если вы предварительно fer), наконец, вы можете запустить процесс, который хотите проанализировать в новом пространстве имен, и wirehark тоже: ip netns exec test thebinarytotest
ip netns exec test wireshark
Вам нужно будет контролировать интерфейс veth-a. netstat -taucp | grep <pid or process name>
Это покажет соединения, которые делает приложение, включая используемый порт.
Просто идея: возможно ли привязать ваше приложение к другому IP-адресу? Если это так, вы можете использовать обычных подозреваемых (tcpdump и т. Д.)
Инструменты для приложений, которые не способны связываться с другим IP-адресом:
fixsrcip - это инструмент для привязки исходящих TCP и UDP-клиентских сокетов (IPv4) к конкретным IP-адресам источника на многодомных хостахhttp://freshmeat.net/ projects / force_bind
fixsrcip - это инструмент для привязки исходящих TCP-и UDP-клиентских сокетов (IPv4) к определенным IP-адресам источника на многодомных хостах
Я пришел к аналогичной проблеме, и я смог разобраться с ней на основе этого ответа ioerror, используя NFLOG, как описано здесь:
# iptables -A OUTPUT -m owner --uid-owner 1000 -j CONNMARK --set-mark 1
# iptables -A INPUT -m connmark --mark 1 -j NFLOG --nflog-group 30
# iptables -A OUTPUT -m connmark --mark 1 -j NFLOG --nflog-group 30
# dumpcap -i nflog:30 -w uid-1000.pcap
Тогда вы можете создать запуск процесса, о котором идет речь из учетной записи пользователя, которая ничего не делает - и voila, вы только что выделили и захватили трафик из одного процесса.
Просто хотел отправить сообщение на случай, если это поможет кому угодно.
Это грязный хак, но я бы предложил либо переадресацию, либо лог-цель с iptables для данного UID. например:
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner $USER -m tcp -j LOG
iptables -t nat -A OUTPUT -p udp -m owner --uid-owner $USER -m udp -j LOG
Возможно, стоит посмотреть на что-то вроде «-log-tcp-sequence», «-log-tcp-options», «-log-ip-options» , '--log-uid' для этой цели журнала. Хотя я подозреваю, что это только поможет вам опубликовать процесс pcap, который включает в себя массу других данных.
Цель NFLOG может быть полезна, если вы хотите пометить пакеты, а затем некоторые помеченные пакеты будут отправлены по сети сокет в выбранный вами процесс. Интересно, будет ли это полезно для взлома чего-то с помощью wirehark и вашего конкретного приложения, работающего как конкретный пользователь?
Вы можете попробовать tracedump - http://mutrics.iitis.pl/tracedump
Он делает именно то, что вы хотите, вы можете либо дать ему идентификатор процесса, либо программу для запуска.
]Попробуйте запустить процесс, который вас интересует в strace:
strace ping www.askubuntu.com
Он даст вам очень подробную информацию о том, что делает ваш процесс. Поскольку процесс может открывать любые порты, которые он хочет в любом месте, используя предопределенный фильтр, вы можете что-то пропустить.
Другим подходом было бы использование урезанной виртуальной машины или тестовой машины в вашей сети и поместите на него свой процесс по отдельности. Затем вы можете просто использовать strace , чтобы поймать все с этой машины. Вы будете уверены, что захваченный вами трафик будет иметь значение.
Основываясь на ответе ioerror, я подозреваю, что вы можете использовать iptables --uid-owner для установки маркера в трафике, а затем вы можете попросить wirehark захватить только трафик с этим маркером. Возможно, вы сможете использовать DSCP (маркер дифференциальных служб), идентификатор потока или маркер qos.
Или вы можете использовать это, чтобы отправить эти пакеты из другого интерфейса, а затем захватить только этот интерфейс .
errorshark ошибка # 1184 - это эта функция. Он еще не реализован. Код скопирован от пользователя cmanynard по адресу ask.wireshark.org
Я написал приложение C, которое делает то, что описано в большом ответе выше felahdab!
См. здесь: nsntrace github repo
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Я думаю, вы можете создать сценарий оболочки, чтобы выполнить цикл выполнения netstat и записать его в текстовый файл. Что-то вроде (очень грубые шаги):
echo "press q to quit"
while [ <q is not pressed>]
do
`netstat -taucp | grep <pid or process name> 1>>logfile.txt`
done
Я не программист, поэтому я не могу это уточнить. Но кто-то здесь может начать с того места, где я остановился, и создать для вас рабочий сценарий.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.
Возможно, iptables и ulog могут работать? Не то, чтобы у меня был точный рецепт, но я думаю, что iptables может соответствовать процессам, после совпадения вы можете использовать ulog.