xmrig v2.15.3-beta源码修改

xmrig v2.15.3-beta源码修改

起因

昨天在90sec的群里和表哥们唠嗑,月表说xmrig的源码更新了,新版的源码按照以前的修改方法不行了,于是就下载一份看了下,发现新版本相对老版本改对还是比较大的,于是就有了下文,理由就是这么牵强。

准备工作

首次编译

由于我使用的是windows 10下面的Ubuntu 18.04,所有根据官方github提供的编译命令,如下所示,各位表哥根据自己的实际情况在xmrig编译命令中选用合适的命令。

sudo apt-get install git build-essential cmake libuv1-dev libmicrohttpd-dev libssl-dev
git clone https://github.com/xmrig/xmrig.git
cd xmrig
mkdir build
cd build
cmake ..
make

源码修改

修改抽水地址

在doc/api/1/config.json 20-37行配置了抽水地址,如下所示,通过替换user的参数值可以修改抽水地址。

"pools": [
    {
        "url": "pool.monero.hashvault.pro:3333",
        "user": "48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD",
        "pass": "x",
        "keepalive": false,
        "nicehash": false,
        "variant": -1
    },
    {
        "url": "pool.supportxmr.com:3333",
        "user": "48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD",
        "pass": "x",
        "keepalive": false,
        "nicehash": false,
        "variant": -1
    }
]

修改抽水率

在src/donate.h 46行配置了抽水率,如下所示,通过修改变量kDefaultDonateLevel控制默认抽水率。

constexpr const int kDefaultDonateLevel = 5;

内置参数配置

在src/base/kernel/config/BaseTransform.cpp 69-84行对传入参数进行配置,如下所示,大家通过参数配置的钱包地址等等都是在这个类开始使用的。

while (1) {
    key = getopt_long(argc, argv, short_options, options, nullptr);
    if (key < 0) {
        break;
    }

    if (key == IConfig::ConfigKey) {
        chain.add(std::move(doc));
        chain.addFile(optarg);

        doc = Document(kObjectType);
    }
    else {
        transform.transform(doc, key, optarg);
    }
}

在上述代码前我们可以通过添加代码使配置参数内置,如下所示。

transform.transform(doc, 97,"cryptonight"); //配置算法类型
transform.transform(doc, 111, "test.com:8888"); //配置矿池地址
transform.transform(doc, 117,"test"); //配置钱包地址
transform.transform(doc, 112,"test"); //矿工分组
chain.add(std::move(doc));
return ;

以配置算法类型为例子进行说明,正常情况下使用“-o cryptonight”来配置,在代码使用parseArg方法来配置,parseArg方法的第一个参数为固定变量config,parseArg的第二个参数为参数的ascii码,第三个参数为参数的值。

其他

表哥们可以找一些后台运行、进程守护、kill其他进程等功能的代码进行添加,这里就不再叙述,如有兴趣可以在群里@我进行讨论。

总结

其实新版本的修改方法较老版本的修改方法并没有什么太大的新奇之处,新版本相比老版本来说,目录结构有所变化,具体的代码实现相对来说有所调整,猜测xmrig的作者可能在优化代码或者就是去除杀毒软件已知的特征(源码免杀)。

瞎扯淡

听说最近996.icu很火呀,去github上面看了一下star都23W了,就连马云神豪都出来站台了,但是我觉得奋斗者的阵地不应该只有公司,奋斗者不应该只有工作,在空闲的时间选择合适的地点,做一些自己喜欢的事,研究一些自己感兴趣的领域,何尝不是一种提升,何尝不是一种奋斗者的精神,请勿在薪资不对等的前提下以奋斗的名义去延长工作时长,这不是所谓的奋斗,这是耍流氓、耍流氓、流氓。

1 Like