Jump to content

Enyby

Administrators
  • Posts

    8,811
  • Joined

  • Last visited

  • Days Won

    1,012

Posts posted by Enyby

  1. 1 hour ago, DeSlimsteMan said:

    We want to protect our scripts better and i was wondering if there is a possibility to completely protect our scripts?
    And if that is not yet possible can @Enyby make that possible?

    It would be super cool if you could because there are too many people copying our script now,

    And if I can't 100% secure our script.
    What is the best way to secure our scripts? And that it is therefore very difficult to pass by.

    Game developer can say:

    Quote

    We want to protect our games better and i was wondering if there is a possibility to completely protect our games?
    And if that is not yet possible can @Enyby make that possible?

    It would be super cool if you could because there are too many people cheating our game now,

    And if I can't 100% secure our game.
    What is the best way to secure our games? And that it is therefore very difficult to pass by.

    What I should answer to them? Which answer suit them? Which answer suit you? What difference between you and this game developer?

  2. 2 hours ago, Boardoptions said:

    5.53552857e-315E

    Usually, if you use such numbers, then you are mistaken with the choice of data type. In your case, it should be qword instead of double. If you have a float with strange numbers, you need to use dword.

  3. It’s better to tell me where you live, I’ll come to your home (a trip at my expense, of course) and I will explain to you personally for a whole week how to use the program, because using the search, help and forum is too difficult for you, and I have a lot of free time for you.

  4. Pointers not useless. And they not different at all. But your experience at pointers not about pointers at all. It is about usage CE, which not memory editor only (like GG). It is debugger, like gdb.

    Also you use it in Windows. Windows do not have ASLR in general. It implemented only in latest Windows. An Android ASLR exists much longer. So you need more actions to make pointers useful.

    Another pitfall is ARM itself. RISC architecture where offset usually embedded in code instructions. You can not store 32-bit operand in 32-bit code instruction and so on.

    Pointers really hard for use for Android. And you need gdb if you want use some stuff like breakpoints.

    Also in Windows, games which you hack do not contain any defense against hack. Because they sold as bundle. Not as free-to-play.

    For example you can try hack with CE something defensed with Denuvo. You can not, because it is protection of advanced level.

    In Android most good games with good enough protection form average user.

    So near every game now contains some anti-debugging technics which prevent simple use gdb.

     

    As I say you can try use ceserver + CE for find it is true or not. If it it is GG is bad, then ceserver give you all possibility which you have in CE for Windows apps.

    [added 4 minutes later]

    And Windows is good place where you have unlimited access to everything, powerful CPU and video, lot of RAM and so on.

    In Android sometimes you do not have root, or root limited in actions, CPU not powerful at all, video is weak, RAM is not always enough for your game only (do not speak about GG + game) and so on.

    All things from embedded devices.

    Some approaches from Windows you simply can not use here.

  5. 4 minutes ago, CmP said:

    it does not really matter when results count is relatively small.

    Depends on the specific situation. For example, if the code needs to be executed within a certain time frame or 30 such code sections must be executed. In this case, even for 100 elements there can be a noticeable difference.

  6. 6 minutes ago, zam535582 said:

    its goddam so fast.

    You can make it is faster, by cache get 'value' from inner table:

    local results = gg.getResults(5000)
    for i, v in ipairs(results) do
      local value = v.value
      if value == 1014350479 then
        v.value = 1011011011
      elseif value == 1050253722 or value == 1031127695 then
        v.value = 1
      else
        results[i] = nil
      end
    end
    gg.setValues(results)
    results = nil

     

  7. 4 minutes ago, ItsSC said:

    So basically, it runs checking for all results at once, while my method is checking one by one? 

    No. Any loop work one-by-one. But you do same work again and again.

    You can compile both examples to LASM and compare count of instructions.

    You will be unpleasantly surprised by the number of instructions in your code.

    for i = 1 ,#t1 do
    if(t1[i].value==1014350479)then -- get t1[i]
        t1[i].value = 1011011011 -- get t1[i] again
        elseif(t1[i].value==1050253722 or t1[i].value ==1031127695)then -- get t1[i] two times
        t1[i].value = 1 -- get t1[i] again
    	end
    end

    Lua do not optimize any code. So if you write get same value few times - lua do it for you. With decrease performance, because it is pointless work.

  8. 4 minutes ago, Enyby said:

    call rebuild table with memory reallocation, which is slow.

    By the way, for this reason, this code:

    local t = {1, 2, 3, ..., 1000}

    much faster than this:

    local t = {}
    t[1] = 1
    t[2] = 2
    t[3] = 3
    ...
    t[1000] = 1000

    For the table, an array of the right size is immediately allocated, and not reallocated repeatedly as it is populated.
    Although, again, this is true when the number of elements is thousands and tens of thousands, and not when there are hundreds of them. In this case, there will be no apparent difference.

  9. 17 minutes ago, Enyby said:

    results[i] = nil

    this line erase element from table. So setValues do not re-set values and we avoid possibility erase changed value with old one.

    Also this operation really fast if run on list table (array-like table, called sequence in lua manual). And this is not rebuild table or reallocate memory, just exclude one value.

    So this way really fast. But if you try (after few remove) add to table some new value, or remove value from hash part - it can call rebuild table with memory reallocation, which is slow.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.