X86汇编操作数寻址

还是在大学的时候学汇编原理和接口技术的时候看过这些东西,不甚明了,现在就来重新看一下。

阅读更多

使用远程线程进行DLL的注入

每个进程都有自己的虚拟内存地址空间, Windows 提供了一些API函数来让我们可以从进程外部修改进程的内存,启动线程等。这样我们就可以通过一些非常规的手段让进程执行一些我们自己的代码了。其基本的工作原理是 利用 CreateRemoteThread 在目标进程中建立一个线程,然后调用进程中已经存在的 LoadLibrary() 函数来加载我们指定的 DLL。

阅读更多

Git服务器存储裸库及多个工作区

在用 gitbook 部署的时候才发现的一个很不错的操作,此操作将版本库与工作区分开,实在是非常不错的东西。

阅读更多

Windows中的线程

在 Windows 中,进程是被动式的,其没有什么需要内核调度到 CPU 进行执行。 内核调度的实际上是线程,当然,每次建立一个新进程的时候,会为进程建立内核对象,分配地址空间,同时还会建立一个主线程,这样内核就会调度主线程的代码了。一般来说,我们进程的主线程入口是 main,wMain,winMain,wWinMain,这些函数其实其实也和我们手动建立的线程的入口线程有相似的地方。

阅读更多

在Linux为开启SFTP

新技能GET,虽然不是什么麻烦的事情,但是不仔细的用过还是会走不少弯路,再加上网络上的教程都是不明不白的,不会让你知其所以然。

阅读更多

关于RxJava操作符flatMap与concatMap的探究

迷惑的地方在于当 flatMap 和 concatMap 在运作的时候,在配合线程切换的话,其细节到底是怎么样的呢?

阅读更多

使用Retrofit-Rxjava来上传下载文件

使用 Http 协议进行文件传输的时候,需要了解一些必要的知识,然后才能配合使用 Retrofit 和 RxJava 来进行操作。

阅读更多

关于Windows的内核对象

当系统提供给我们很多 API 调用的时候,事实上我们是请求系统为我们做很多事情,比如很多由系统进行维护的数据结构,我们是无法进行操纵的,必须通过系统提供的API进行操纵,这也就是所谓内核对象的由来。

阅读更多

macOS上用brew安装nginx及ffmpeg实现RTSP转RTMP

安装ffmpeg

brew install ffmpeg --with-ffplay

ffplay 是一个播放器,可以直接播放各种流。

支持RTMP的Nginx

brew tap denji/nginx
brew install nginx-full --with-rtmp-module
brew info nginx-full

https://www.jianshu.com/p/cf74a34af15d

推流

ffmpeg -re -rtsp_transport tcp -i "rtsp://host/dss/monitor/params?cameraid=1000025%2412&substream=1" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://localhost:1935/mylive/1"

阅读更多

在C++与Java中的一些不同

之前是学 C, 后面是用 Java 做安卓开发,现在又有机会来看一下 MFC,但是就对于其中一些概念并不是很明白,或者是因为我并没有完整的看过一些书籍的问题。特别是 MFC 对于 Win32 的封装,看起来有一些很古怪的地方。

阅读更多

<<<<<<< Updated upstream