Yardım Cython ile kilitlenmiş root açılabilir mi?

  • Konuyu açan Konuyu açan exploytadam
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 17
  • Gösterim Gösterim 513
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

exploytadam

Üye
Üye
Mesaj
89
Çözümler
5
Beğeni
21
Puan
459
Ticaret Puanı
0
Pack için sağlam bir kilitleme metodu arıyordum en son cythonda karar kıldım , bilinen cythonla kilitlenmiş bir packin kırıldığı sunucu var mı hiç acaba? Veyahut kırılabilir mi bu konu hakkında bilgisi sağlam arkadaşlar yorum yapabilir mi acaba.
 
cython kilitleme yöntemi değil. pyleri farklı bir classa çevirip client src kodlarına dönüştürüyorsun. client srcne erişilemediği gibi onlarada erişilemiyor. ama bir kilitleme yöntemi değil yani onu söylemek istedim.
 
cython kilitleme yöntemi değil. pyleri farklı bir classa çevirip client src kodlarına dönüştürüyorsun. client srcne erişilemediği gibi onlarada erişilemiyor. ama bir kilitleme yöntemi değil yani onu söylemek istedim.
py dosyalarını önceden compile edip client'a gömdüğün için bir nevi kilitleme yapmış oluyorsun ondan bahsediyorum. bilgisi sağlam arkadaşlar yorum yapsın demiştim ama.
 
py dosyalarını önceden compile edip client'a gömdüğün için bir nevi kilitleme yapmış oluyorsun ondan bahsediyorum. bilgisi sağlam arkadaşlar yorum yapsın demiştim ama.
IMG_2178.jpeg


programlama dili. senin mantıkla userinterface.cppyide kilitlemiş oluyoruz.
 
Dostum sen git sistem falan söksene bana neden google'dan aldığın ss'i copy-paste yapıyorsun? Attığın mesaj soruya bile cevap değil ki, daha bahsettiğim şeyi anlayamadan böyle yorumlar yapma kendini küçük düşürüyorsun , rica ediyorum benim açtığım konulara cevap verme.
 
Dostum sen git sistem falan söksene bana neden google'dan aldığın ss'i copy-paste yapıyorsun? Attığın mesaj soruya bile cevap değil ki, daha bahsettiğim şeyi anlayamadan böyle yorumlar yapma kendini küçük düşürüyorsun , rica ediyorum benim açtığım konulara cevap verme.
client srcne erişilemediği gibi onlarada erişilemiyor. ama bir kilitleme yöntemi değil yani onu söylemek istedim.

zaten yazmışım ilk mesajımda. okuman yok sanırım. ama yazmam tabi sen bilirsin iyi forumlar.
 
Ben de eskiden cython pack kilitleme diye biliyordum, ne güzel anlatmış iyilik yapmış sen doğrusunu öğren diye yazmış sana güzelce de açıklamış anlatmış, ama işte bazılarına iyilik yapmak yaramıyor.
 
Ben de eskiden cython pack kilitleme diye biliyordum, ne güzel anlatmış iyilik yapmış sen doğrusunu öğren diye yazmış sana güzelce de açıklamış anlatmış, ama işte bazılarına iyilik yapmak yaramıyor.
Konuyu polemik yaratma noktasına çekmeyin lütfen , cythonun özünde pack kilitleme olmadığını ben de biliyorum. Kullanacağım amaç doğrultusunda kullanım sebebini belirtmek için kilitleme diye bahsediyorum konuda. Ne kadar alakasız yorum varsa hepsini yapmışsınız mesaj kasmak mı amacınız ne acaba? Şu konuya asıl sorduğum şey harici başka bir şey yazmazsanız çok sevinirim arkadaşlar.
 
Cython = C + Python.
İsim her şeyi özetliyor zaten.
Cython dediğimiz şey Python ile C yi birlikte kullanmamızı sağlayan bir yapıdır. Mantık olarak şöyle örnek vereyim, PSM sistemi de mevcut playersettingsmodule.py dosyasının C'ye çevrilmiş halidir. Ancak ne tamamen C kodu olmuş oluyor, ne de Python'dan tamamen kopmuş oluyor. İkisiyle de ortak çalışmaya devam ediyor.
Bunun avantaj olarak verdiği performans haricinde bir diğer artısı da, klasik playersettingsmodule.py içeriğinin artık client içine taşınması sebebiyle bu kodlara ulaşmayı bir hayli zorlaştırmış olmasıdır.

Bu söylediğim olay sadece mantık açısından bir örnekti.
Cython'un yaptığı şey de büyük ölçüde buna benzer. Tersine mühendislikle dosyalara/kodlara ulaşmayı zorlaştırır ancak herhangi bir şifreleme işlemi uygulamaz. Encrypt ve decrypt işlemleri bu tür konulardan bağımsız, tercihe göre tamamen kişinin tercihine bağlı olarak yapılan veya yapılmayan işlemlerdir. Yani sorduğun soruya yönelik olarak; bu işlemin sana tek artısı bu olacaktır. Yani kodlara ulaşmayı zorlaştırmak..Bu da güvenliği arttıracaktır elbette. Ancak her zaman olduğu gibi bu güvenlik %100 olmayacak.

Bunun haricinde konudan bağımsız olarak, python kodlarını saklamak ve python güvenliğini sağlamak kadar clientin kendi güvenliğini de arttırmak çok önemli bir konudur. Yani şöyle; bu işlerin piri olan birisi, python kodlarına ulaşamasa bile çeşitli yöntemlerle ve harici yazılımlar ile oyunun exe dosyası üzerinden ile python kodlarına müdahele edebilir. Böyle şeyler mümkün, bu işlerde uzmanlaşmış dediğimiz kişilerin metin2 gibi bir kendilerine hiç bir getiri sağlamayacak çöplükle uğraşmaması bu tür olayların olmadığı anlamına gelmiyor. Hilelerin bir çoğu da bu mantığa yakın bir mantıkla hazırlanıyor zaten.
 
Cython = C + Python.
İsim her şeyi özetliyor zaten.
Cython dediğimiz şey Python ile C yi birlikte kullanmamızı sağlayan bir yapıdır. Mantık olarak şöyle örnek vereyim, PSM sistemi de mevcut playersettingsmodule.py dosyasının C'ye çevrilmiş halidir. Ancak ne tamamen C kodu olmuş oluyor, ne de Python'dan tamamen kopmuş oluyor. İkisiyle de ortak çalışmaya devam ediyor.
Bunun avantaj olarak verdiği performans haricinde bir diğer artısı da, klasik playersettingsmodule.py içeriğinin artık client içine taşınması sebebiyle bu kodlara ulaşmayı bir hayli zorlaştırmış olmasıdır.

Bu söylediğim olay sadece mantık açısından bir örnekti.
Cython'un yaptığı şey de büyük ölçüde buna benzer. Tersine mühendislikle dosyalara/kodlara ulaşmayı zorlaştırır ancak herhangi bir şifreleme işlemi uygulamaz. Encrypt ve decrypt işlemleri bu tür konulardan bağımsız, tercihe göre tamamen kişinin tercihine bağlı olarak yapılan veya yapılmayan işlemlerdir. Yani sorduğun soruya yönelik olarak; bu işlemin sana tek artısı bu olacaktır. Yani kodlara ulaşmayı zorlaştırmak..Bu da güvenliği arttıracaktır elbette. Ancak her zaman olduğu gibi bu güvenlik %100 olmayacak.

Bunun haricinde konudan bağımsız olarak, python kodlarını saklamak ve python güvenliğini sağlamak kadar clientin kendi güvenliğini de arttırmak çok önemli bir konudur. Yani şöyle; bu işlerin piri olan birisi, python kodlarına ulaşamasa bile çeşitli yöntemlerle ve harici yazılımlar ile oyunun exe dosyası üzerinden ile python kodlarına müdahele edebilir. Böyle şeyler mümkün, bu işlerde uzmanlaşmış dediğimiz kişilerin metin2 gibi bir kendilerine hiç bir getiri sağlamayacak çöplükle uğraşmaması bu tür olayların olmadığı anlamına gelmiyor. Hilelerin bir çoğu da bu mantığa yakın bir mantıkla hazırlanıyor zaten.
Yanıtınız için teşekkürler hocam , bildiğiniz herhangi bir sunucu var mı cython kullanıpta rootları sızan?
 
Yanıtınız için teşekkürler hocam , bildiğiniz herhangi bir sunucu var mı cython kullanıpta rootları sızan?
Sanırım TR cython kullanıyor. Onun açılmış root dosyasında da yanlış bilmiyorsam bizdeki gibi .py dosyaları bulunmuyor. MSM dosyaları ve atlasinfo gibi dosyalar çıkıyor sadece.Geriye kalanlar pek iş görecek dosyalar değil gibi..
Mesela eski bir sürüme ait cython packindeki playerSettingModule.py içeriği şu şekilde:
Python:
Genişlet Daralt Kopyala
key: __LoadGameSura, val: <cyfunction __LoadGameSura at 0x0AC253F8>
key: JOB_WARRIOR, val: 0
key: skill, val: <module 'skill' (built-in)>
key: JOB_ASSASSIN, val: 1
key: OLD_SetNPC, val: <cyfunction OLD_SetNPC at 0x0AC357C0>
key: constInfo, val: <module 'constInfo' (built-in)>
key: __LoadGameWarriorEx, val: <cyfunction __LoadGameWarriorEx at 0x0AC25558>
key: localeInfo, val: <module 'localeInfo' (built-in)>
key: __LoadGameWarrior, val: <cyfunction __LoadGameWarrior at 0x0AC25348>
key: JOB_SURA, val: 2
key: JOB_SHAMAN, val: 3
key: PASSIVE_GUILD_SKILL_INDEX_LIST, val: (151,)
key: COMBO_TYPE_1, val: 0
key: COMBO_TYPE_2, val: 1
key: COMBO_TYPE_3, val: 2
key: item, val: <module 'item' (built-in)>
key: __package__, val: None
key: HORSE_SKILL_SPLASH, val: 173
key: GUILD_SKILL_DRAGONWRATH, val: 155
key: __LoadGameSound, val: <cyfunction __LoadGameSound at 0x0AC25298>
key: RACE_SHAMAN_M, val: 7
key: __LoadGameSuraEx, val: <cyfunction __LoadGameSuraEx at 0x0AC25608>
key: HORSE_SKILL_WILDATTACK, val: 171
key: SetGuard, val: <cyfunction SetGuard at 0x0AC25A80>
key: SetMovingNPC, val: <cyfunction SetMovingNPC at 0x0AC25978>
key: __LoadRaceHeight, val: <cyfunction __LoadRaceHeight at 0x0AC25818>
key: loadGameDataDict, val: {'SOUND': 0, 'WARRIOR': 0, 'SHOP': None, 'SURA': 0, 'RACE_HEIGHT': None, 'WOLFMAN': 0, 'EFFECT': 0, 'NPC': 0, 'SET_ITEM': None, 'INIT': 0, 'SHAMAN': 0, 'SKILL': 0, 'ASSASSIN': 0, 'ENEMY': 0}
key: isInitData, val: 1
key: __builtins__, val: <module '__builtin__' (built-in)>
key: effect, val: <module 'effect' (built-in)>
key: __name__, val: playerSettingModule
key: __InitData, val: <cyfunction __InitData at 0x0AC25240>
key: DefineSkillIndexDict, val: <cyfunction DefineSkillIndexDict at 0x0AC25030>
key: __LoadGameWolfman, val: <cyfunction __LoadGameWolfman at 0x0AC254A8>
key: LoadGuildBuildingList, val: <cyfunction LoadGuildBuildingList at 0x0AC25870>
key: emotion, val: <module 'emotion' (built-in)>
key: __LoadGameAssassinEx, val: <cyfunction __LoadGameAssassinEx at 0x0AC255B0>
key: RACE_WARRIOR_M, val: 0
key: app, val: <module 'app' (built-in)>
key: LoadGameData, val: <cyfunction LoadGameData at 0x0AC25920>
key: RegisterSkill, val: <cyfunction RegisterSkill at 0x0AC25088>
key: RACE_WARRIOR_W, val: 4
key: GUILD_SKILL_MAGICUP, val: 156
key: SetGeneralMotions, val: <cyfunction SetGeneralMotions at 0x0AC25138>
key: __LoadGameWolfmanEx, val: <cyfunction __LoadGameWolfmanEx at 0x0AC25500>
key: chrmgrm2g, val: <module 'chrmgrm2g' (built-in)>
key: GUILD_SKILL_SPPEDUP, val: 154
key: chr, val: <module 'chr' (built-in)>
key: GUILD_SKILL_DRAGONBLOOD, val: 151
key: __doc__, val: None
key: SetDoor, val: <cyfunction SetDoor at 0x0AC35710>
key: JOB_WOLFMAN, val: 4
key: __test__, val: {}
key: GUILD_SKILL_BLESSARMOR, val: 153
key: __LoadShopDeco, val: <cyfunction __LoadShopDeco at 0x0AC25768>
key: guild, val: <module 'guild' (built-in)>
key: __LoadSetItemName, val: <cyfunction __LoadSetItemName at 0x0AC258C8>
key: __LoadGameAssassin, val: <cyfunction __LoadGameAssassin at 0x0AC253A0>
key: HORSE_SKILL_CHARGE, val: 172
key: SetGuildBuilding, val: <cyfunction SetGuildBuilding at 0x0AC35768>
key: __LoadGameShamanEx, val: <cyfunction __LoadGameShamanEx at 0x0AC25660>
key: __LoadGameSkill, val: <cyfunction __LoadGameSkill at 0x0AC256B8>
key: RACE_SHAMAN_W, val: 3
key: SetOneNPC, val: <cyfunction SetOneNPC at 0x0AC259D0>
key: __LoadGameShaman, val: <cyfunction __LoadGameShaman at 0x0AC25450>
key: RACE_SURA_W, val: 6
key: m2netm2g, val: <module 'm2netm2g' (built-in)>
key: playerm2g2, val: <module 'playerm2g2' (built-in)>
key: RACE_SURA_M, val: 2
key: __LoadGameEnemy, val: <cyfunction __LoadGameEnemy at 0x0AC25710>
key: __LoadGameEffect, val: <cyfunction __LoadGameEffect at 0x0AC252F0>
key: COMBO_INDEX_3, val: 2
key: __LoadGameNPC, val: <cyfunction __LoadGameNPC at 0x0AC257C0>
key: RACE_ASSASSIN_W, val: 1
key: SetWarp, val: <cyfunction SetWarp at 0x0AC356B8>
key: GUILD_SKILL_DRAGONBLESS, val: 152
key: SetNewGeneralMotions, val: <cyfunction SetNewGeneralMotions at 0x0AC25190>
key: SKILL_INDEX_DICT, val: {0: {1: (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0), 2: (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 1: {1: (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140), 2: (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 2: {1: (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0), 2: (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 3: {1: (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0), 2: (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 4: {1: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 2: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}}
key: RACE_ASSASSIN_M, val: 5
key: RACE_WOLFMAN_M, val: 8
key: RegisterSkillAt, val: <cyfunction RegisterSkillAt at 0x0AC250E0>
key: ACTIVE_GUILD_SKILL_INDEX_LIST, val: (152, 153, 154, 155, 156, 157)
key: COMBO_INDEX_6, val: 5
key: COMBO_INDEX_5, val: 4
key: COMBO_INDEX_4, val: 3
key: SetIntroMotions, val: <cyfunction SetIntroMotions at 0x0AC251E8>
key: COMBO_INDEX_2, val: 1
key: COMBO_INDEX_1, val: 0
key: FACE_IMAGE_DICT, val: {0: 'd:/ymir work/ui/game/windows/face_warrior.sub', 1: 'd:/ymir work/ui/game/windows/face_assassin.sub', 2: 'd:/ymir work/ui/game/windows/face_sura.sub', 3: 'd:/ymir work/ui/game/windows/face_shaman.sub'}
Python:
Genişlet Daralt Kopyala
{'class': [],
 'func': [{'args': [], 'defaults': [], 'name': 'DefineSkillIndexDict'},
          {'args': ['name'], 'defaults': [], 'name': 'LoadGameData'},
          {'args': ['filename'], 'defaults': [], 'name': 'LoadGuildBuildingList'},
          {'args': [], 'defaults': [], 'name': 'OLD_SetNPC'},
          {'args': ['race', 'group', 'empire'], 'defaults': [0], 'name': 'RegisterSkill'},
          {'args': ['race', 'group', 'pos', 'num'], 'defaults': [], 'name': 'RegisterSkillAt'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetDoor'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetGeneralMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetGuard'},
          {'args': ['race', 'name', 'grade'], 'defaults': [], 'name': 'SetGuildBuilding'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetIntroMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetMovingNPC'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetNewGeneralMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetOneNPC'},
          {'args': ['race'], 'defaults': [], 'name': 'SetWarp'},
          {'args': [], 'defaults': [], 'name': '__InitData'},
          {'args': [], 'defaults': [], 'name': '__LoadGameAssassin'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameAssassinEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameEffect'},
          {'args': [], 'defaults': [], 'name': '__LoadGameEnemy'},
          {'args': [], 'defaults': [], 'name': '__LoadGameNPC'},
          {'args': [], 'defaults': [], 'name': '__LoadGameShaman'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameShamanEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSkill'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSound'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSura'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameSuraEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameWarrior'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameWarriorEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameWolfman'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameWolfmanEx'},
          {'args': [], 'defaults': [], 'name': '__LoadRaceHeight'},
          {'args': [], 'defaults': [], 'name': '__LoadSetItemName'},
          {'args': [], 'defaults': [], 'name': '__LoadShopDeco'}],
 'import': ['skill', 'constInfo', 'localeInfo', 'item', '__builtin__', 'effect', 'emotion', 'app', 'chrmgrm2g', 'chr', 'guild', 'm2netm2g', 'playerm2g2'],
 'var': [{'name': 'ACTIVE_GUILD_SKILL_INDEX_LIST', 'type': 'tuple', 'value': (152, 153, 154, 155, 156, 157)},
         {'name': 'COMBO_INDEX_1', 'type': 'int', 'value': 0},
         {'name': 'COMBO_INDEX_2', 'type': 'int', 'value': 1},
         {'name': 'COMBO_INDEX_3', 'type': 'int', 'value': 2},
         {'name': 'COMBO_INDEX_4', 'type': 'int', 'value': 3},
         {'name': 'COMBO_INDEX_5', 'type': 'int', 'value': 4},
         {'name': 'COMBO_INDEX_6', 'type': 'int', 'value': 5},
         {'name': 'COMBO_TYPE_1', 'type': 'int', 'value': 0},
         {'name': 'COMBO_TYPE_2', 'type': 'int', 'value': 1},
         {'name': 'COMBO_TYPE_3', 'type': 'int', 'value': 2},
         {'name': 'FACE_IMAGE_DICT', 'type': 'dict', 'value': {0: 'd:/ymir work/ui/game/windows/face_warrior.sub', 1: 'd:/ymir work/ui/game/windows/face_assassin.sub', 2: 'd:/ymir work/ui/game/windows/face_sura.sub', 3: 'd:/ymir work/ui/game/windows/face_shaman.sub'}},
         {'name': 'GUILD_SKILL_BLESSARMOR', 'type': 'int', 'value': 153},
         {'name': 'GUILD_SKILL_DRAGONBLESS', 'type': 'int', 'value': 152},
         {'name': 'GUILD_SKILL_DRAGONBLOOD', 'type': 'int', 'value': 151},
         {'name': 'GUILD_SKILL_DRAGONWRATH', 'type': 'int', 'value': 155},
         {'name': 'GUILD_SKILL_MAGICUP', 'type': 'int', 'value': 156},
         {'name': 'GUILD_SKILL_SPPEDUP', 'type': 'int', 'value': 154},
         {'name': 'HORSE_SKILL_CHARGE', 'type': 'int', 'value': 172},
         {'name': 'HORSE_SKILL_SPLASH', 'type': 'int', 'value': 173},
         {'name': 'HORSE_SKILL_WILDATTACK', 'type': 'int', 'value': 171},
         {'name': 'JOB_ASSASSIN', 'type': 'int', 'value': 1},
         {'name': 'JOB_SHAMAN', 'type': 'int', 'value': 3},
         {'name': 'JOB_SURA', 'type': 'int', 'value': 2},
         {'name': 'JOB_WARRIOR', 'type': 'int', 'value': 0},
         {'name': 'JOB_WOLFMAN', 'type': 'int', 'value': 4},
         {'name': 'PASSIVE_GUILD_SKILL_INDEX_LIST', 'type': 'tuple', 'value': (151,)},
         {'name': 'RACE_ASSASSIN_M', 'type': 'int', 'value': 5},
         {'name': 'RACE_ASSASSIN_W', 'type': 'int', 'value': 1},
         {'name': 'RACE_SHAMAN_M', 'type': 'int', 'value': 7},
         {'name': 'RACE_SHAMAN_W', 'type': 'int', 'value': 3},
         {'name': 'RACE_SURA_M', 'type': 'int', 'value': 2},
         {'name': 'RACE_SURA_W', 'type': 'int', 'value': 6},
         {'name': 'RACE_WARRIOR_M', 'type': 'int', 'value': 0},
         {'name': 'RACE_WARRIOR_W', 'type': 'int', 'value': 4},
         {'name': 'RACE_WOLFMAN_M', 'type': 'int', 'value': 8},
         {'name': 'SKILL_INDEX_DICT',
          'type': 'dict',
          'value': {0: {1: (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0), 2: (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    1: {1: (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140), 2: (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    2: {1: (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0), 2: (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    3: {1: (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0), 2: (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    4: {1: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 2: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}}},
         {'name': '__doc__', 'type': 'NoneType', 'value': None},
         {'name': '__name__', 'type': 'str', 'value': 'playerSettingModule'},
         {'name': '__package__', 'type': 'NoneType', 'value': None},
         {'name': '__test__', 'type': 'dict', 'value': {}},
         {'name': 'isInitData', 'type': 'int', 'value': 1},
         {'name': 'loadGameDataDict', 'type': 'dict', 'value': {'ASSASSIN': 0, 'EFFECT': 0, 'ENEMY': 0, 'INIT': 0, 'NPC': 0, 'RACE_HEIGHT': None, 'SET_ITEM': None, 'SHAMAN': 0, 'SHOP': None, 'SKILL': 0, 'SOUND': 0, 'SURA': 0, 'WARRIOR': 0, 'WOLFMAN': 0}}]}
 
Sanırım TR cython kullanıyor. Onun açılmış root dosyasında da yanlış bilmiyorsam bizdeki gibi .py dosyaları bulunmuyor. MSM dosyaları ve atlasinfo gibi dosyalar çıkıyor sadece.Geriye kalanlar pek iş görecek dosyalar değil gibi..
Mesela eski bir sürüme ait cython packindeki playerSettingModule.py içeriği şu şekilde:
Python:
Genişlet Daralt Kopyala
key: __LoadGameSura, val: <cyfunction __LoadGameSura at 0x0AC253F8>
key: JOB_WARRIOR, val: 0
key: skill, val: <module 'skill' (built-in)>
key: JOB_ASSASSIN, val: 1
key: OLD_SetNPC, val: <cyfunction OLD_SetNPC at 0x0AC357C0>
key: constInfo, val: <module 'constInfo' (built-in)>
key: __LoadGameWarriorEx, val: <cyfunction __LoadGameWarriorEx at 0x0AC25558>
key: localeInfo, val: <module 'localeInfo' (built-in)>
key: __LoadGameWarrior, val: <cyfunction __LoadGameWarrior at 0x0AC25348>
key: JOB_SURA, val: 2
key: JOB_SHAMAN, val: 3
key: PASSIVE_GUILD_SKILL_INDEX_LIST, val: (151,)
key: COMBO_TYPE_1, val: 0
key: COMBO_TYPE_2, val: 1
key: COMBO_TYPE_3, val: 2
key: item, val: <module 'item' (built-in)>
key: __package__, val: None
key: HORSE_SKILL_SPLASH, val: 173
key: GUILD_SKILL_DRAGONWRATH, val: 155
key: __LoadGameSound, val: <cyfunction __LoadGameSound at 0x0AC25298>
key: RACE_SHAMAN_M, val: 7
key: __LoadGameSuraEx, val: <cyfunction __LoadGameSuraEx at 0x0AC25608>
key: HORSE_SKILL_WILDATTACK, val: 171
key: SetGuard, val: <cyfunction SetGuard at 0x0AC25A80>
key: SetMovingNPC, val: <cyfunction SetMovingNPC at 0x0AC25978>
key: __LoadRaceHeight, val: <cyfunction __LoadRaceHeight at 0x0AC25818>
key: loadGameDataDict, val: {'SOUND': 0, 'WARRIOR': 0, 'SHOP': None, 'SURA': 0, 'RACE_HEIGHT': None, 'WOLFMAN': 0, 'EFFECT': 0, 'NPC': 0, 'SET_ITEM': None, 'INIT': 0, 'SHAMAN': 0, 'SKILL': 0, 'ASSASSIN': 0, 'ENEMY': 0}
key: isInitData, val: 1
key: __builtins__, val: <module '__builtin__' (built-in)>
key: effect, val: <module 'effect' (built-in)>
key: __name__, val: playerSettingModule
key: __InitData, val: <cyfunction __InitData at 0x0AC25240>
key: DefineSkillIndexDict, val: <cyfunction DefineSkillIndexDict at 0x0AC25030>
key: __LoadGameWolfman, val: <cyfunction __LoadGameWolfman at 0x0AC254A8>
key: LoadGuildBuildingList, val: <cyfunction LoadGuildBuildingList at 0x0AC25870>
key: emotion, val: <module 'emotion' (built-in)>
key: __LoadGameAssassinEx, val: <cyfunction __LoadGameAssassinEx at 0x0AC255B0>
key: RACE_WARRIOR_M, val: 0
key: app, val: <module 'app' (built-in)>
key: LoadGameData, val: <cyfunction LoadGameData at 0x0AC25920>
key: RegisterSkill, val: <cyfunction RegisterSkill at 0x0AC25088>
key: RACE_WARRIOR_W, val: 4
key: GUILD_SKILL_MAGICUP, val: 156
key: SetGeneralMotions, val: <cyfunction SetGeneralMotions at 0x0AC25138>
key: __LoadGameWolfmanEx, val: <cyfunction __LoadGameWolfmanEx at 0x0AC25500>
key: chrmgrm2g, val: <module 'chrmgrm2g' (built-in)>
key: GUILD_SKILL_SPPEDUP, val: 154
key: chr, val: <module 'chr' (built-in)>
key: GUILD_SKILL_DRAGONBLOOD, val: 151
key: __doc__, val: None
key: SetDoor, val: <cyfunction SetDoor at 0x0AC35710>
key: JOB_WOLFMAN, val: 4
key: __test__, val: {}
key: GUILD_SKILL_BLESSARMOR, val: 153
key: __LoadShopDeco, val: <cyfunction __LoadShopDeco at 0x0AC25768>
key: guild, val: <module 'guild' (built-in)>
key: __LoadSetItemName, val: <cyfunction __LoadSetItemName at 0x0AC258C8>
key: __LoadGameAssassin, val: <cyfunction __LoadGameAssassin at 0x0AC253A0>
key: HORSE_SKILL_CHARGE, val: 172
key: SetGuildBuilding, val: <cyfunction SetGuildBuilding at 0x0AC35768>
key: __LoadGameShamanEx, val: <cyfunction __LoadGameShamanEx at 0x0AC25660>
key: __LoadGameSkill, val: <cyfunction __LoadGameSkill at 0x0AC256B8>
key: RACE_SHAMAN_W, val: 3
key: SetOneNPC, val: <cyfunction SetOneNPC at 0x0AC259D0>
key: __LoadGameShaman, val: <cyfunction __LoadGameShaman at 0x0AC25450>
key: RACE_SURA_W, val: 6
key: m2netm2g, val: <module 'm2netm2g' (built-in)>
key: playerm2g2, val: <module 'playerm2g2' (built-in)>
key: RACE_SURA_M, val: 2
key: __LoadGameEnemy, val: <cyfunction __LoadGameEnemy at 0x0AC25710>
key: __LoadGameEffect, val: <cyfunction __LoadGameEffect at 0x0AC252F0>
key: COMBO_INDEX_3, val: 2
key: __LoadGameNPC, val: <cyfunction __LoadGameNPC at 0x0AC257C0>
key: RACE_ASSASSIN_W, val: 1
key: SetWarp, val: <cyfunction SetWarp at 0x0AC356B8>
key: GUILD_SKILL_DRAGONBLESS, val: 152
key: SetNewGeneralMotions, val: <cyfunction SetNewGeneralMotions at 0x0AC25190>
key: SKILL_INDEX_DICT, val: {0: {1: (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0), 2: (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 1: {1: (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140), 2: (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 2: {1: (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0), 2: (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 3: {1: (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0), 2: (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}, 4: {1: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 2: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}}
key: RACE_ASSASSIN_M, val: 5
key: RACE_WOLFMAN_M, val: 8
key: RegisterSkillAt, val: <cyfunction RegisterSkillAt at 0x0AC250E0>
key: ACTIVE_GUILD_SKILL_INDEX_LIST, val: (152, 153, 154, 155, 156, 157)
key: COMBO_INDEX_6, val: 5
key: COMBO_INDEX_5, val: 4
key: COMBO_INDEX_4, val: 3
key: SetIntroMotions, val: <cyfunction SetIntroMotions at 0x0AC251E8>
key: COMBO_INDEX_2, val: 1
key: COMBO_INDEX_1, val: 0
key: FACE_IMAGE_DICT, val: {0: 'd:/ymir work/ui/game/windows/face_warrior.sub', 1: 'd:/ymir work/ui/game/windows/face_assassin.sub', 2: 'd:/ymir work/ui/game/windows/face_sura.sub', 3: 'd:/ymir work/ui/game/windows/face_shaman.sub'}
Python:
Genişlet Daralt Kopyala
{'class': [],
 'func': [{'args': [], 'defaults': [], 'name': 'DefineSkillIndexDict'},
          {'args': ['name'], 'defaults': [], 'name': 'LoadGameData'},
          {'args': ['filename'], 'defaults': [], 'name': 'LoadGuildBuildingList'},
          {'args': [], 'defaults': [], 'name': 'OLD_SetNPC'},
          {'args': ['race', 'group', 'empire'], 'defaults': [0], 'name': 'RegisterSkill'},
          {'args': ['race', 'group', 'pos', 'num'], 'defaults': [], 'name': 'RegisterSkillAt'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetDoor'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetGeneralMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetGuard'},
          {'args': ['race', 'name', 'grade'], 'defaults': [], 'name': 'SetGuildBuilding'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetIntroMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetMovingNPC'},
          {'args': ['mode', 'folder'], 'defaults': [], 'name': 'SetNewGeneralMotions'},
          {'args': ['race', 'name'], 'defaults': [], 'name': 'SetOneNPC'},
          {'args': ['race'], 'defaults': [], 'name': 'SetWarp'},
          {'args': [], 'defaults': [], 'name': '__InitData'},
          {'args': [], 'defaults': [], 'name': '__LoadGameAssassin'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameAssassinEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameEffect'},
          {'args': [], 'defaults': [], 'name': '__LoadGameEnemy'},
          {'args': [], 'defaults': [], 'name': '__LoadGameNPC'},
          {'args': [], 'defaults': [], 'name': '__LoadGameShaman'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameShamanEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSkill'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSound'},
          {'args': [], 'defaults': [], 'name': '__LoadGameSura'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameSuraEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameWarrior'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameWarriorEx'},
          {'args': [], 'defaults': [], 'name': '__LoadGameWolfman'},
          {'args': ['race', 'path'], 'defaults': [], 'name': '__LoadGameWolfmanEx'},
          {'args': [], 'defaults': [], 'name': '__LoadRaceHeight'},
          {'args': [], 'defaults': [], 'name': '__LoadSetItemName'},
          {'args': [], 'defaults': [], 'name': '__LoadShopDeco'}],
 'import': ['skill', 'constInfo', 'localeInfo', 'item', '__builtin__', 'effect', 'emotion', 'app', 'chrmgrm2g', 'chr', 'guild', 'm2netm2g', 'playerm2g2'],
 'var': [{'name': 'ACTIVE_GUILD_SKILL_INDEX_LIST', 'type': 'tuple', 'value': (152, 153, 154, 155, 156, 157)},
         {'name': 'COMBO_INDEX_1', 'type': 'int', 'value': 0},
         {'name': 'COMBO_INDEX_2', 'type': 'int', 'value': 1},
         {'name': 'COMBO_INDEX_3', 'type': 'int', 'value': 2},
         {'name': 'COMBO_INDEX_4', 'type': 'int', 'value': 3},
         {'name': 'COMBO_INDEX_5', 'type': 'int', 'value': 4},
         {'name': 'COMBO_INDEX_6', 'type': 'int', 'value': 5},
         {'name': 'COMBO_TYPE_1', 'type': 'int', 'value': 0},
         {'name': 'COMBO_TYPE_2', 'type': 'int', 'value': 1},
         {'name': 'COMBO_TYPE_3', 'type': 'int', 'value': 2},
         {'name': 'FACE_IMAGE_DICT', 'type': 'dict', 'value': {0: 'd:/ymir work/ui/game/windows/face_warrior.sub', 1: 'd:/ymir work/ui/game/windows/face_assassin.sub', 2: 'd:/ymir work/ui/game/windows/face_sura.sub', 3: 'd:/ymir work/ui/game/windows/face_shaman.sub'}},
         {'name': 'GUILD_SKILL_BLESSARMOR', 'type': 'int', 'value': 153},
         {'name': 'GUILD_SKILL_DRAGONBLESS', 'type': 'int', 'value': 152},
         {'name': 'GUILD_SKILL_DRAGONBLOOD', 'type': 'int', 'value': 151},
         {'name': 'GUILD_SKILL_DRAGONWRATH', 'type': 'int', 'value': 155},
         {'name': 'GUILD_SKILL_MAGICUP', 'type': 'int', 'value': 156},
         {'name': 'GUILD_SKILL_SPPEDUP', 'type': 'int', 'value': 154},
         {'name': 'HORSE_SKILL_CHARGE', 'type': 'int', 'value': 172},
         {'name': 'HORSE_SKILL_SPLASH', 'type': 'int', 'value': 173},
         {'name': 'HORSE_SKILL_WILDATTACK', 'type': 'int', 'value': 171},
         {'name': 'JOB_ASSASSIN', 'type': 'int', 'value': 1},
         {'name': 'JOB_SHAMAN', 'type': 'int', 'value': 3},
         {'name': 'JOB_SURA', 'type': 'int', 'value': 2},
         {'name': 'JOB_WARRIOR', 'type': 'int', 'value': 0},
         {'name': 'JOB_WOLFMAN', 'type': 'int', 'value': 4},
         {'name': 'PASSIVE_GUILD_SKILL_INDEX_LIST', 'type': 'tuple', 'value': (151,)},
         {'name': 'RACE_ASSASSIN_M', 'type': 'int', 'value': 5},
         {'name': 'RACE_ASSASSIN_W', 'type': 'int', 'value': 1},
         {'name': 'RACE_SHAMAN_M', 'type': 'int', 'value': 7},
         {'name': 'RACE_SHAMAN_W', 'type': 'int', 'value': 3},
         {'name': 'RACE_SURA_M', 'type': 'int', 'value': 2},
         {'name': 'RACE_SURA_W', 'type': 'int', 'value': 6},
         {'name': 'RACE_WARRIOR_M', 'type': 'int', 'value': 0},
         {'name': 'RACE_WARRIOR_W', 'type': 'int', 'value': 4},
         {'name': 'RACE_WOLFMAN_M', 'type': 'int', 'value': 8},
         {'name': 'SKILL_INDEX_DICT',
          'type': 'dict',
          'value': {0: {1: (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0), 2: (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    1: {1: (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140), 2: (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    2: {1: (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0), 2: (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    3: {1: (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0), 2: (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)},
                    4: {1: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 2: (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0), 'SUPPORT': (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 132)}}},
         {'name': '__doc__', 'type': 'NoneType', 'value': None},
         {'name': '__name__', 'type': 'str', 'value': 'playerSettingModule'},
         {'name': '__package__', 'type': 'NoneType', 'value': None},
         {'name': '__test__', 'type': 'dict', 'value': {}},
         {'name': 'isInitData', 'type': 'int', 'value': 1},
         {'name': 'loadGameDataDict', 'type': 'dict', 'value': {'ASSASSIN': 0, 'EFFECT': 0, 'ENEMY': 0, 'INIT': 0, 'NPC': 0, 'RACE_HEIGHT': None, 'SET_ITEM': None, 'SHAMAN': 0, 'SHOP': None, 'SKILL': 0, 'SOUND': 0, 'SURA': 0, 'WARRIOR': 0, 'WOLFMAN': 0}}]}
Yani herhangi bir packı açmışlar yine , cythona dokunulan bir nokta yok yani.
 
Resmi metin2 cython kullanıyor mu hocam ondan emin miyiz peki? Zira bendeki dosyalarında packde hala root dosyaları var.
Uzun süredir cython kullanıyorlar. Packte bulunan root dosyası içerisinde .msm dosyaları var.

Yani herhangi bir packı açmışlar yine , cythona dokunulan bir nokta yok yani.
Zaten konunuza yorum yapanlar gerekli tüm açıklamayı vermiş. Bilen kişiler zaten decompile edebilecek. Performans artışı bakımından cython kullanılabilir 👍🏻
 
Cython için önce Py dosyalarını okuyabilmesi için daha salt formuna pyx'e sonrasında C'ye çevirme işlemidir. Bunun sonrasında çevirdiğimiz kodları exe'ye gömme yani kilitleme yapıyoruz. Standart py dosyalarını kolaylıkla exe'ye gömmenin kolaylaştırılmış işlemidir gibi düşünebilirsiniz. Bu yaptığınız işlem sizin client performansınıza + yönde etki etmekte tümleşik yapısından dolayı veriler daha hızlı okunmasını sağlar. Şahsen klasikleşmiş kilitlemesiz görünen FoxFS yerine Cython + VFS kullanıyorum pack'imi açabileni daha görmedim. Cython'u açmanın demeyeyim de içeriğini okuyup birşeyler yapabilecek insan tersine mühendisliği gıdım gıdımına bilmesi gerekir. Hadi diyelim onu da yaptı açıp okuyan adam çok iyi, gidip bir liste oluşturursunuz clientte modüller için kontrolü eklersiniz ismi olan modüller harici okumaz. Alta kendi pack'imin Cython'suz halini bırakacağım kullandığım VFS ile ilgili kafanızda net birşey oluşabilir kaynak için de sorabilirsiniz;
 
Üst