- 下载最新版,解压
- 备份
index.js
、package.json
以及core
目录 - 如果使用了默认主题修改版,记得备份。
- 覆盖新版
cp -rf ghost-latest/* ./
- 还原第三方包
npm install --production
- 运行网站,没有问题则删除备份。
用法很简单,把获取到的 Json 数据拷贝进去,单击转换,生成可供 TypeScript 使用的 Interface 接口。
样例输入:
{
"url": "https://jixun.moe/",
"posts": [
{ "title": "日记", "date": "2016.06.08" },
{ "title": "随笔", "date": "2016.06.09" }
],
"last-update": 1465388410306
}
样例输出:
… 继续阅读 »预装了 Windows 10 家庭版,32 位。机身 2GB 内存,32GB 储存,可通过内存卡扩容。
跑电有种莫名的快,哪怕我关机了(非休眠、睡眠),过几个小时后又快没电了。
… 继续阅读 »首先写一个注入用的 DLL:
// stdafx.h
#include <objbase.h>
#include <MetaHost.h>
#include <cassert>
// ProxyDll.cpp
#define ASSEMBLY_NAME L"Launcher.exe"
#define LOADER_TYPE L"moe.jixun.Inject"
#define LOADER_FUNCTION L"Init"
__declspec(dllexport) void Bootstrap() {
CoInitializeEx(0, COINIT_MULTITHREADED);
ICLRMetaHost *pMetaHost = nullptr;
HRESULT hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
ICLRRuntimeInfo *pRuntimeInfo = nullptr;
pMetaHost->GetRuntime(L"v4.0.30319", IID_ICLRRuntimeInfo, (LPVOID*)&pRuntimeInfo);
ICLRRuntimeHost *pClrRuntimeHost = nullptr;
pRuntimeInfo->GetInterface(CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (LPVOID*)&pClrRuntimeHost);
pClrRuntimeHost->Start();
DWORD dReturnValue;
hr = pClrRuntimeHost->ExecuteInDefaultAppDomain(ASSEMBLY_NAME, LOADER_TYPE, LOADER_FUNCTION, L"Test", &dReturnValue);
assert(hr == S_OK);
}
因为 .net 的 exe 可以当做库来用,可以直接把代码写到我们的 exe 然后注入进去执行。
… 继续阅读 »