2011-12-14 22 views
6

Birçok hırsızlık önleme de dahil olmak üzere birçok Lua betiğini (Multi Theft Auto çok oyunculu mod için) derledim. Gerçekte, bu sadece bir hırsızlık caydırıcıdır, çünkü Luadec (http://luadec51.luaforge.net/) komut dosyalarını kolayca derler. Komut dosyalarının nasıl ayrıştırılamaz hale getirilebileceği konusunda herhangi bir ipucu olan var mı?Lua komut dosyalarını nasıl ayrıştırılamaz hale getirebilirim?

cevap

7

Şifreleme; Bu gerçekten işe yarayacak tek yol. Elbette, programınız bunları şifresini çözmesi gerektiğinden, şifrelenmiş verileri hemen bellekten kapatabilirlerdi.

Hayır, yapabileceğiniz hiçbir şey yok. Herhangi bir yöntemi, bir dereceye kadar "sadece bir hırsızlık caydırıcı" olacak. Asıl meclisin derlenmesi bile bir caydırıcıdır, çünkü bu, orijinal kaynak kodundan tamamen farklı olmayan bir şeye dönüştürülebilir.

Sorun, kullanıcıya ne kadar sorun vermek istediğinizdir. Şifreleme muhtemelen size paranızın karşılığını verir. Bu, verileri belleğin dışına nasıl akıtacağınızı anlamak için yürütülebilir dosyaları yürütmek zorunda kalmaya zorlar. Çoğu sıradan kullanıcı bunu yapmak istemez.

2

Gerçekten ciddiye almak isterseniz, lua vm tarafından oluşturulan ve kullanılan opcodes'leri değiştirebilirdiniz, daha sonra raf yazılımı ile bir daha bozulabilir. Bu, sizin değerinizden daha fazla sorun yaratabilmesine rağmen - kendi lua versiyonunuzu desteklemeniz gerekecek ve muhtemelen luajit gibi şeyleri kullanamayacaksınız.

Derlemeyi yapmak için, geldiğiniz ve çevirdiğiniz opcodes'ların eşlemesini bulmaları gerekir. Muhtemelen yapmak çok zor olmaz, ama muhtemelen yapmazdım. oldukça kolay olabilir kaynağında baktığımızda

[Güncelleme]

, orada iki dosya lopcode.c ve sadece işini halletmiş olursunuz bunlarda opcodes sırasını değiştirmek belki lopcode.h. Bunu yapıp bitirdiysen, lütfen gönder.

+1

VM yönergelerinde işlenenlerin sırasını da değiştirerek biraz daha zor yapabilirsiniz. – lhf

+1

Bu yaklaşımın, "luac" tarafından sağlanan gibi bir bytecode listerine erişiminiz varsa, tam olarak çalışmayacağını unutmayın, çünkü siparişi tersine çevirebilirsiniz. Ama bu bir acı olur ve muhtemelen çoğu insanı caydırırdı. Ya da motive edilmiş hacker için bir meydan okuma olabilir. :-) – lhf

+0

Gerçekten de hiçbir şey adanmış hacker'ı bir hex dökümü ile durduramaz. Bunu Nicol'un önerdiği şekilde şifrelemeyle dahil ederseniz ve ilk önce bir lua obfuscator üzerinden çalıştırırsanız, sadece gerçekten adanmış oluruz. – daven11

0

Bunun mümkün olduğunu düşünmüyorum. Canavarın doğası (çok küçük bir VM üzerinde çalışan çok az bir dil) temel olarak onu yasaklamaktadır.

Umarız en iyisi, decompiled kodun bir insan için olabildiğince anlaşılması zor olmasıdır.

1

Multi Theft Auto artık kodların şifrelenmesini destekliyor. Onları çevrimiçi olarak http://luac.mtasa.com/'da derleyebilir veya bağımsız derleyiciyi indirebilirsiniz.