Мне нужна помощь, ребята, я создаю виртуальную машину и использую маркеры, чтобы определить начальную точку защиты и конечную точку защиты.
Так, например, когда я пытаюсь сделать это, я получаю ошибку: ошибка LNK2001: неразрешенный внешний символ
#pragma once
#pragma comment(lib, "../Release/libphant.lib")
extern "C" {
void __stdcall BeginProtect(unsigned int);
void __stdcall EndProtect(unsigned int);
}
//BeginProtect(0xb1f12057)
//EndProtect(0x5720f1b1);
#define BeginProtect __asm {\
__asm push 0xb1f12057\
__asm call BeginProtect\
}
#define EndProtect __asm {\
__asm push 0x5720f1b1\
__asm call EndProtect\
}
Итак, я получаю: неразрешенный внешний символ "_BeginProtect @ 4"неразрешенный внешний символ "_EndProtect @ 4"
Что я делаю?Я использую файл asm lib (как вы можете видеть) и использую маркеры BeginProtect и EndProtect в основном файле.
Спасибо!
ОБНОВЛЕНО: часть из asm
public BeginProtect as "_BeginProtect@4"
public EndProtect as "_EndProtect@4"
основной файл, который я пытаюсь построить (просто пример):
#include "stdafx.h"
#include "phant.h"
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
BeginProtect;
using std::cout;
using std::endl;
cout << "Hello, World!" << endl;
EndProtect;
return 0;
}
ОБНОВЛЕНИЕ: Спасибо, ребята!я решил проблему.Это все о .lib файле.он был немного поврежден, я просто перекомпилировал его с FASM и собрал с VS.и теперь работает нормально!