我正試圖寫入一個指向內存進程中的double的指針,當我執行dll注入時遇到了這個問題。C++ dll,如何寫入內存中的指針的double值?
這裏是我的類:
class SpeedHack : public MasterClass {
private:
SpeedHack() {};
struct Speed { double speed; };
public:
Speed* getAddy()
{
return (Speed*)(address);
}
bool isSpeedAtkon = false;
void writeMem()
{
getAddy()->speed = 3.1;
}
static SpeedHack& get()
{
static SpeedHack instance;
return instance;
}
};
//address is 0x767650 and value is a double 0.300000
我也有其他的類,比如它和所有其他的工作,但我從來沒有在結構(僅在這個類)
的應用程序崩潰雙onceIi嘗試調用writeMemory()方法...其他類的其他結構總是工作,即使它們更復雜...
記錄此:Logger :: log(「%f」,SpeedHack :: get()。 getAddy() - >速度);如預期的返回我0.300000,並記錄地址返回我正確的一個...
所以我不知道我在做什麼錯了...(應用程序崩潰,當我嘗試在此地址更改double值)...有人知道我可以修復它嗎?
我認爲通過「雙指針」你實際上是指*指向* double(而不是例如'sometype **')? –
對不起,我不是英語母語的人 – Noj
*程序如何崩潰?因爲您沒有對該值的寫入權限,或者因爲3.1是不正確的值?或者是其他東西? –