U盘全新安装macOS Sierra

因:木木女神需要用ipad安装一个Instagram的分享APP来找花艺图片,但是这个应用需要的IOS系统较新,然后用MAC给ipad升级又发现MAC系统软件较老不能升级,于是升级了mac的系统软件。之后顺利的给IPAD升级并安装上了Instagram这个应用。回过头顺便把MAC的系统也升级到最新的Sierra。OK问题来了,下载更新之后重启MAC一直提示macOS Sierra未能安装到电脑上。

然后各种爬文,也一直没有解决问题。索性就干脆格盘重装,好在MAC里保存的资料不多。之后下载macOS Sierra原版U盘恢复镜像。用WIN10制作启动盘,重装系统!

- 阅读剩余部分 -

Detours Express 3.0 使用测试 函数劫持

新建一个win32控制台项目做为测试

根据上一篇文章,把编译好的detours.lib,和detours.h 2个文件拷贝到项目路劲
一下为源码:

// detoursTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "detours.h"

#pragma comment(lib,"detours.lib")

static int (WINAPI *pold)(
    HWND hWnd,
    LPCWSTR lpText,
    LPCWSTR  lpCaption,
    UINT uType) = MessageBoxW;
int WINAPI newMessageBoxW(
    HWND hWnd,
    LPCWSTR lpText,
    LPCWSTR lpCaption,
    UINT uType)
{
    printf("小伙,你被劫持了");
    return 0;
}

void hook()
{
    DetourRestoreAfterWith();//恢复原来的状态,重新开始劫持。
    DetourTransactionBegin();//拦截开始//   GetCurrentThread() DetourAttach() DetourTransactionCommit
    DetourUpdateThread(GetCurrentThread());//刷新当前的线程
    DetourAttach((void **)&pold, newMessageBoxW);//实现函数劫持 传入函数指针的地址 转换为指向空指针的指针 修改地址跳转到新的函数
    DetourTransactionCommit();//拦截生效
}

void unhook()
{
    DetourRestoreAfterWith();//恢复原来的状态,重新开始劫持。
    DetourTransactionBegin();//拦截开始//   GetCurrentThread() DetourAttach() DetourTransactionCommit
    DetourUpdateThread(GetCurrentThread());//刷新当前的线程
                                           //DetourAttach((void **)&pold, newMessageBoxW);//实现函数劫持,传入函数指针的地址,转换为指向空指针的指针
    DetourDetach((void **)&pold, newMessageBoxW);//实现撤销函数劫持,传入函数指针的地址,转换为指向空指针的指针,
                                                 //修改地址,跳转到原来的函数
    DetourTransactionCommit();//拦截生效
}

int main()
{
    MessageBoxW(0, L"她谁的老婆", L"徐倩是老太婆", 0);
    hook();
    MessageBoxW(0, L"她谁的老婆", L"徐倩是老太婆", 0);
    system("pause");
}

Detours 3.0 Express VS2015的编译

之前在VS2013下编译过Detours3.0
https://www.imxfeng.com/index.php/archives/145/

这次是记录在VS2015下的编译过程,win10 64位系统。
下载好Detours默认安装路劲:
C:Program Files (x86)Microsoft ResearchDetours Express 3.0

然后使用cd指令,在开发人员命令行中进入到detour的根目录

cd C:\Program Files (x86)\Microsoft Research\Detours Express 3.0

detour express3.0提供了makefile,也就是说可以使用vcvarsall自带的nmake命令对这个文件进行编译,从而生成静态库lib文件。这时我们使用nmake命令编译

nmake



- 阅读剩余部分 -