Jump to content

Baumi

Inactive Member
  • Posts

    12
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Baumi

  1. template<class T>
    inline std::string NumberFormat(T value) 
    {
    	struct CustomNumpunct : std::numpunct < char >
    	{
    	protected:
    		virtual char do_thousands_sep() const { return '.'; }
    		virtual std::string do_grouping() const { return "\03"; }
    	};
    
    	std::stringstream ss;
    	ss.imbue(std::locale(std::cout.getloc(), new CustomNumpunct));
    	ss << std::fixed << value;
    	return ss.str();
    }
      // https://stackoverflow.com/questions/7276826/c-format-number-with-commas

     

    • Love 3
  2. This is actually a issue either me or the the developers that came after me brought into the rubinum source.

    The better fix is fixing it in the window manager or martysamas approach.

    Ymir actually already solved this in the Inferna source by introducing ui_event.py

    This is the hidden content, please

    Here you have it.

    Basically when setting an event you use MakeEvent and when calling SetEvent you just give the argument if it has arguments you do Event(func, arg, arg, arg) for example

    That way you eliminate cyclic references.

    Also in the window manager there is an define you can enable to find elements that were not properly deleted

    so you can fix it by properly deleting in Destroy or __del__

     

    • Metin2 Dev 44
    • Eyes 2
    • Good 7
    • Love 1
    • Love 12
  3. vor 1 Minute schrieb LucaC:

    Leuco Shell among any other protection is quite useless. The problem that gets you all is that the main module (seen as metin2client.bin) is a fake one. You need to fetch the real module (which is hidden from the module list, you have to either rebuild it or use an external tool that's already able to do so) address and do your patching from there.

     

    9L19sMR.png

    In this function they take a snapshot of the process and probabbly hide the real one

    5b6yPks.png

  4. Hm I could put some time into reversing leuco shell

    https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif

    or well maybe do some tries on getting an running binary / patching out leuco shell

    Btw are you using the correct thread?  I think they are starting a fake thread or something like that

    The string encryption kinda sucks but when I have that solved it should be pretty easy to figure out how it works

    Probably it would be easier to modify the leuco shell dll or if we have enough information about it replacing it with a own version.

    Well the easiest method should still be doing a clear unpack of the binary, I have a almost clear unpack 

     

    gNpwDbk.png

     

    URGIKD7.png

    even the virtualized functions everything unpacked its just not executeable I got this from a friend who used the same Tool to unpack as I did but had better results

    You can also use this to extract every file with one issue, it works with "r" mode but there are no file extension checks

         handle = app.OpenTextFile(filename)
        count = app.GetTextFileLineCount(handle)
        for i in xrange(count):
            line = app.GetTextFileLine(handle, i)

  5. Well what about hooking CMappedFile or well CEterPackManager::GetFromPack directly to get the data?

    Also what did they patch in packGet

     zaiQY9I.png

     

    I dont see any change well they pack their resources now so changing the .pyc to .gr2 for example with a packed binary wont work anymore (It could probably still work with the suspended proccess memory editing stuff) but well yeah they did not touch packGet and packExist directly those do the same things (with the exception that packExists has some extra checks you can patch out if)

    If you have a unpacked working themida free version just go ahead and patch the functions with ida pro and disable the checks. If not you still should be able to do some stuff because well you have the correct function signatures and some more stuff.

    Actually I reverse engineered it further there is no change in packGet that keeps you from extracting stuff maybe leuco shell just stops you from saving stuff?

  6. Okay xD yours might be a bit better mine after some reverse engineering looked more like this

     

    	void CMoveImageBox::SetMovePosition (float x, float y)
    	{
    		if (x == m_vec2TargetPos.x)	{
    			return;
    		}
    
    		if (x == m_vec2TargetPos.y)	{
    			return;
    		}
    
    		if (m_rect.top == m_vec2StartingPos.x) {
    			return;
    		}
    
    		if (m_rect.right == m_vec2StartingPos.y) {
    			return;
    		}
    
    		m_vec2StartingPos.x = m_rect.top;
    		m_vec2StartingPos.y = m_rect.right;
    
    		m_vec2TargetPos.x = x;
    		m_vec2TargetPos.y = y;
    
    		m_vec2NormalizedPos.x = m_vec2TargetPos.x - m_vec2StartingPos.x;
    		m_vec2NormalizedPos.y = m_vec2TargetPos.y - m_vec2StartingPos.y;
    
    		m_fMoveDist = m_vec2NormalizedPos.y * m_vec2NormalizedPos.y	+
    					  m_vec2NormalizedPos.x * m_vec2NormalizedPos.x;
    
    		D3DXVec2Normalize (&m_vec2NormalizedPos, &m_vec2NormalizedPos);
    
    
    		if (m_pImageInstance && (m_vec2StartingPos.x != m_vec2NextMovePos.x	|| m_vec2StartingPos.y != m_vec2NextMovePos.y))
    		{
    			float fDist = sqrt (m_vec2DistanceFromStart.y * m_vec2DistanceFromStart.y +
    								m_vec2DistanceFromStart.x * m_vec2DistanceFromStart.x);
    
    			m_vec2NextMovePos.x = m_vec2NormalizedPos.x * fDist;
    			m_vec2NextMovePos.y = m_vec2NormalizedPos.y * fDist;
    
    			m_pImageInstance->SetPosition (m_vec2NextMovePos.x, m_vec2NextMovePos.y);
    		}
    
    	}

     

  7. https://ideone.com/XXJDKE

     

    • Success time: 0.01 memory: 15240 signal:0
      you've used 214433 changes
      
      
    • Success time: 0 memory: 16064 signal:0
      you've used 1809 changes
      
      
    • Success time: 0.03 memory: 15240 signal:0
      you've used 568036 changes
      
      
    • Success time: 0.03 memory: 15240 signal:0
      you've used 493878 changes
      
      
    • Success time: 0 memory: 16064 signal:0
      you've used 71409 changes
      
    • Metin2 Dev 1
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.