Лол, декомпильнул мод -> убрал проверку -> профит!А если совсем извратиться, что бы этот мод на другие сервера не поставили, то надо делать привязку по ip, что бы мод чекал запускается ли это сервер и если да, то чекать ip, подходит - пропускает, не подходит - крашает
Эхх ивасик...Лол, декомпильнул мод -> убрал проверку -> профит!
public void LWJGLGameStartGraphics()
{
IntegratedServer integratedServer = Minecraft.getMinecraft().getIntegratedServer();
if (integratedServer != null && integratedServer.isServerRunning())
{
throw new AccessControlException("You have a big problem!");
}
}
Где хоть используешь или ты так, впихнул наобум?Эхх ивасик...
Хер там плавает в этих выкидываниях! Не работает :<
Я попробывал фигня.. я немного подправил код
Java:public void LWJGLGameStartGraphics() { IntegratedServer integratedServer = Minecraft.getMinecraft().getIntegratedServer(); if (integratedServer != null && integratedServer.isServerRunning()) { throw new AccessControlException("You have a big problem!"); } }
в главном классе мода, после инитаГде хоть используешь или ты так, впихнул наобум?
package tcheetah;
import java.security.AccessControlException;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiMainMenu;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.server.integrated.IntegratedServer;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.MinecraftForge;
import tcheetah.weapon.*;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.SideOnly;
import tcheetah.armor.*;
import tcheetah.util.*;
@Mod(
modid = "mads",
name = "Mads",
version = "1.1.2"
)
@NetworkMod(
clientSideRequired = true,
serverSideRequired = false,
channels = {"tch"}
)
public class Mads {
@Instance("Mads")
public static Mads instance;
@SidedProxy(
clientSide = "tcheetah.ClientProxy",
serverSide = "tcheetah.CommonProxy"
)
public static CommonProxy proxy;
public static EnumToolMaterial OwnMat = EnumHelper.addToolMaterial("OwnMat", 2, 0, 7.0F, 30, 9);
public static Keyboard keyboard;
public static Item ColibriHammer;
public static Item AdvColibriHammer;
public static Item LionHammer;
public static Item AdvLionHammer;
public static Item DragonHammer;
public static Item AdvDragonHammer;
public static ItemArmor Mega1;
public static ItemArmor Mega2;
public static ItemArmor Mega3;
public static ItemArmor Mega4;
public static Item guard;
public EventHandler eventHandler;
@PreInit
public void PreLoad(FMLPreInitializationEvent event)
{
this.eventHandler = new EventHandler();
MinecraftForge.EVENT_BUS.register(this.eventHandler);
}
@Init
public void Load(FMLInitializationEvent event)
{
ColibriHammer = (new ColibriHammer(4001, Mads.OwnMat)).setUnlocalizedName("ColibriHammer");
LanguageRegistry.addName(ColibriHammer, "1");
AdvColibriHammer = (new AdvColibriHammer(4002, Mads.OwnMat)).setUnlocalizedName("AdvColibriHammer");
LanguageRegistry.addName(AdvColibriHammer, "§cУлучшенный§g vk.com/xzenforever§f");
LionHammer = (new LionHammer(4003, Mads.OwnMat)).setUnlocalizedName("LionHammer");
LanguageRegistry.addName(LionHammer, "§6vk.com/xzenforever§f");
AdvLionHammer = (new AdvLionHammer(4004, Mads.OwnMat)).setUnlocalizedName("AdvLionHammer");
LanguageRegistry.addName(AdvLionHammer, "§cУлучшенный§6 vk.com/xzenforeverа§f");
DragonHammer = (new DragonHammer(4005, Mads.OwnMat)).setUnlocalizedName("DragonHammer");
LanguageRegistry.addName(DragonHammer, "§5vk.com/xzenforever§f");
AdvDragonHammer = (new AdvDragonHammer(4006, Mads.OwnMat)).setUnlocalizedName("AdvDragonHammer");
LanguageRegistry.addName(AdvDragonHammer, "§cУлучшенный§5 vk.com/xzenforever§f");
Mega1 = (ItemArmor)(new Mega1(4020, EnumArmorMaterial.DIAMOND, 0, 0)).setUnlocalizedName("Mega1");
Mega2 = (ItemArmor)(new Mega2(4021, EnumArmorMaterial.DIAMOND, 1, 1)).setUnlocalizedName("Mega2");
Mega3 = (ItemArmor)(new Mega3(4022, EnumArmorMaterial.DIAMOND, 2, 2)).setUnlocalizedName("Mega3");
Mega4 = (ItemArmor)(new Mega4(4023, EnumArmorMaterial.DIAMOND, 3, 3)).setUnlocalizedName("Mega4");
LanguageRegistry.addName(Mega1, "§2Шлем колибри§f");
LanguageRegistry.addName(Mega2, "§2Нагрудник колибри§f");
LanguageRegistry.addName(Mega3, "§2Штаны колибри§f");
LanguageRegistry.addName(Mega4, "§2Ботинки колибри§f");
proxy.initMod();
}
@Init public void load_CHEETAH_GUARD_ACTIVATION_METHOD_LOAD1(FMLInitializationEvent Gurd){guard = (new guard(9999)).setCreativeTab(CTabs.tabCrowns);}
public void LWJGLGameStartGraphics()
{
IntegratedServer integratedServer = Minecraft.getMinecraft().getIntegratedServer();
Minecraft mc = Minecraft.getMinecraft();
if (integratedServer != null && integratedServer.isServerRunning())
{
throw new AccessControlException("SHISHISHISHISHI");
}
try
{
mc.shutdownMinecraftApplet();
}
catch (Throwable throwable)
{
throw new AccessControlException("SSDHSFJG2");
}
}
}
package tcheetah;
import java.security.AccessControlException;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiMainMenu;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.server.integrated.IntegratedServer;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.MinecraftForge;
import tcheetah.weapon.*;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.SideOnly;
import tcheetah.armor.*;
import tcheetah.util.*;
@Mod(
modid = "mads",
name = "Mads",
version = "1.1.2"
)
@NetworkMod(
clientSideRequired = true,
serverSideRequired = false,
channels = {"tch"}
)
public class Mads {
@Instance("Mads")
public static Mads instance;
@SidedProxy(
clientSide = "tcheetah.ClientProxy",
serverSide = "tcheetah.CommonProxy"
)
public static CommonProxy proxy;
public static EnumToolMaterial OwnMat = EnumHelper.addToolMaterial("OwnMat", 2, 0, 7.0F, 30, 9);
public static Keyboard keyboard;
public static Item ColibriHammer;
public static Item AdvColibriHammer;
public static Item LionHammer;
public static Item AdvLionHammer;
public static Item DragonHammer;
public static Item AdvDragonHammer;
public static ItemArmor Mega1;
public static ItemArmor Mega2;
public static ItemArmor Mega3;
public static ItemArmor Mega4;
public static Item guard;
public EventHandler eventHandler;
@PreInit
public void PreLoad(FMLPreInitializationEvent event)
{
this.eventHandler = new EventHandler();
MinecraftForge.EVENT_BUS.register(this.eventHandler);
}
@Init
public void Load(FMLInitializationEvent event)
{
ColibriHammer = (new ColibriHammer(4001, Mads.OwnMat)).setUnlocalizedName("ColibriHammer");
LanguageRegistry.addName(ColibriHammer, "1");
AdvColibriHammer = (new AdvColibriHammer(4002, Mads.OwnMat)).setUnlocalizedName("AdvColibriHammer");
LanguageRegistry.addName(AdvColibriHammer, "§cУлучшенный§g vk.com/xzenforever§f");
LionHammer = (new LionHammer(4003, Mads.OwnMat)).setUnlocalizedName("LionHammer");
LanguageRegistry.addName(LionHammer, "§6vk.com/xzenforever§f");
AdvLionHammer = (new AdvLionHammer(4004, Mads.OwnMat)).setUnlocalizedName("AdvLionHammer");
LanguageRegistry.addName(AdvLionHammer, "§cУлучшенный§6 vk.com/xzenforeverа§f");
DragonHammer = (new DragonHammer(4005, Mads.OwnMat)).setUnlocalizedName("DragonHammer");
LanguageRegistry.addName(DragonHammer, "§5vk.com/xzenforever§f");
AdvDragonHammer = (new AdvDragonHammer(4006, Mads.OwnMat)).setUnlocalizedName("AdvDragonHammer");
LanguageRegistry.addName(AdvDragonHammer, "§cУлучшенный§5 vk.com/xzenforever§f");
Mega1 = (ItemArmor)(new Mega1(4020, EnumArmorMaterial.DIAMOND, 0, 0)).setUnlocalizedName("Mega1");
Mega2 = (ItemArmor)(new Mega2(4021, EnumArmorMaterial.DIAMOND, 1, 1)).setUnlocalizedName("Mega2");
Mega3 = (ItemArmor)(new Mega3(4022, EnumArmorMaterial.DIAMOND, 2, 2)).setUnlocalizedName("Mega3");
Mega4 = (ItemArmor)(new Mega4(4023, EnumArmorMaterial.DIAMOND, 3, 3)).setUnlocalizedName("Mega4");
LanguageRegistry.addName(Mega1, "§2Шлем колибри§f");
LanguageRegistry.addName(Mega2, "§2Нагрудник колибри§f");
LanguageRegistry.addName(Mega3, "§2Штаны колибри§f");
LanguageRegistry.addName(Mega4, "§2Ботинки колибри§f");
proxy.initMod();
}
@Init public void load_CHEETAH_GUARD_ACTIVATION_METHOD_LOAD1(FMLInitializationEvent Gurd){guard = (new guard(9999)).setCreativeTab(CTabs.tabCrowns);}
public void LWJGLGameStartGraphics()
{
IntegratedServer integratedServer = Minecraft.getMinecraft().getIntegratedServer();
if (integratedServer != null && integratedServer.isServerRunning())
{
throw new AccessControlException("You have a big problem!");
}
}
}
Сделал мод -> Защитил от декомпила -> Отсеял 50%(Процент зависит от защиты) школотыЛол, декомпильнул мод -> убрал проверку -> профит!
Лол, нет. С котлином кода меньше становится и более красивые выглядит, а и npe сокращается в разы.Для справки, ивасик не на яве написал...
Вроде как это котлин, он вот понтуется
Facepalm. Ты можешь декомпильнуть любой код, даже обфусцированный, и все равно при декомпиляции получишь рабочие сорсы. Да хоть весь текст преобразуй в чина эдишн, все равно код запустится, обфускация как таковая не является защитой(только если от людей). А про защиту от декомпила, я вообще молчу.Сделал мод -> Защитил от декомпила -> Отсеял 50%(Процент зависит от защиты) школоты
Это то да, но обфускацию в два этапа нужно(двумя обфускаторами)Самая хорошая защита - вырезать серверный код и клиентского мода. Ну и хорошенько обфусцировать.
А зачем это пихать на сервер то?На сервере? класс Minecraft?