-
Posts
23 -
Joined
-
Last visited
-
Days Won
3 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by iMer
-
-
Also have to modify the bind ports of course
- 2
-
I am looking for an experienced C++ developer to help me debug memory corruption (mainly by reviewing code to see if you can spot any errors). /please/ do not contact me if you dont know what you're doing Related SO question: http://stackoverflow.com/questions/24328193/debugging-lambda-memory-corruption-automatically-watch-object-pointer-in-gdb We can talk about payment privately, I will only pay you if you find the issue though. Reasoning behind this is to prevent people wasting my time and money, I can do that perfectly fine on my own
I'd prefer if you'd poke me on skype so we can talk about this easier, pm is fine too though
-
GCC 4.7+
- 1
-
0617 15:22:00028 :: NameError0617 15:22:00028 :: :0617 15:22:00028 :: name '__COMMAND_LINE__' is not defined0617 15:22:00028 ::
Got your error right there ;p
I also strongly recommend nobody uses this atm.
It still has some serious bugs (crashes)
-
There are even scripts included to automagically do that for you (generate cpp and offsets)
still gonna be a lot of work
- 1
-
Another Update fixing a variety of bugs
- 2
-
Update.
Finished reimplementing P2P stuff and fixed some bugs.
- 1
-
I asked in the shoutbox and people were apparently interested in helping me test this thing.
THIS IS AN ALPHA BUILD.
THERE ARE BOUND TO BE BUGS.
I DO NOT RECOMMEND USING THIS IN A PRODUCTION ENVIRONMENT
That said, some information:
I rewrote the complete network layer so far. Nicer packet handling, more modular stuff.
It uses libevent so in theory, I could also release FreeBSD, windows and other builds in the future.
I might even OSS the whole project, not now though. I am not actively looking for coding help, so please dont ask me to get access to the source. I will either post publicly if I'm looking for people to help me or talk to you directly.
The whole project is based on the 34083 source, doesnt have the dragonsoul system or any of the other stuff.
Features (incomplete list, offtop of my head):
- Gold is using 8 bytes*, new limit is 10.000.000.000.000.000 (yes, that is 10 quadrillion)
- Level is using 2 bytes*
- usual fixes, syncpos, war, number_ex and such
- Some additional quest functions, not all of the ones in my lib, but some of them
TODO:
- Click me
- Enable optimization
- ..and more
That said, you need to switch out your client and game/db binary, the rest /should/ be compatibly.
*there are still some minor things to do like gold in the log isnt 8bytes yet
Additional thanks for their help to:
tim
pompex
Download:
Please report bugs in here or on the bugtracker.
Include PROPER describtions as to what you did and what doesnt work.
Logs are usually useful too (keep in mind there's a lot of debug stuff being logged in this release)
- 18
- 6
- 3
- 34
-
Fun fact: If your login starts with [ the password is treated as plain text.
Of course you wouldn't even get that far with a [ in the login, but whatever..
- 6
-
M2 Download Center
( Internal )
( GitHub )
Since I have no use for this anymore whatsoever, I changed the repo to be public.
Porting it to the source code should be fairly easy as most of the functions and such are the same (yay for LibM2)
It includes:
- SyncPos fix with automatic ban
- /war fix
- number_ex fix
- HorseVnum and Bonus on Mount via Questflag (horse_summon.horse_vnum, horse_summon.apply_type, horse_summon.apply_value)
- Damage bonuses (devil, undead) are each calculated seperately.
- CHARACTER::DropGold just returns
- GiveExp was rewritten to prevent xp boosts and glitches
- 6th and 7th bonus cant be put on costumes anymore
- More quest functions:
- item2.equip
- item2.get_attr
- item2.get_wearflag
- item2.is_wearflag
- item2.set_attr
- npc2.get_level
- npc2.get_pc_pid
- npc2.get_pc_vid
- npc2.select
- pc2.give_or_drop_item_and_select
- pc2.send_effect
- pc2.set_level
- You may still donate XP to guilds when the guild is max. level
- You'll always get status points
- max. priv_empire is modifiable via config
- change_attr time is in seconds and modifiable via config
- you can add new/modify existing bonuses via config
And some other changes I cant think of right now, just snoop through the source.
iMer
PS: Check the license. If you use any of that source and publish it (even in binary form) you must credit me.
- 23
- 1
- 1
- 1
- 1
- 11
- 44
-
ported it to libevent and i havent noticed any performance issues yet
-
As to why you havent seen people do it yet:
The network code is using kqueue which isnt available on linux, you have to port it
- 3
-
Desc->BufferedPacket
..is completely useless in the new encryption. (34k+)
- 2
-
The checkpointing thing is a check to see if the process didnt tick (do a full cycle) in x seconds
So its basically a check if it got stuck somewhere
This can have a multitude of reasons
The one I've seen happening is something related to lua and its garbage collector - nothing specific though.
Due to the nature of the issue it's hard to pinpoint where exactly its getting stuck.
- 4
-
i'd go with ovh vps or kimsufi
- 1
-
So I'm currently looking through the source and finding things which arent immediately clear - mostly the network bit.
CPacketInfo
It's purpose is to do two things
1. Profile/Log incoming packets, how long processing them (the analyze call) took.
2. It stores information regarding to packets, f.e. if there are Sequence bytes at the end of that packet.
Packets
A packet always consists of:
1 byte Header
x byte Data
optional 1 byte Sequence
Db packets always consist of
1 byte Header
4 byte Handle
4 byte Size
x byte Data
Sequence Bytes
The sequence bytes/sequence table are a static array of a set size.
For each DESC (network connection basically) it stores the current position in the sequence table DESC::m_iCurrentSequence and the last 10 elements it recieved (those are for logging purposes only and can be safely removed) DESC::m_seq_vector
The sequence byte will always be at the end of a packet.
What packet has sequence bytes is set in CPacketInfo.
Sequence bytess are only used for packets from client to game.
I thought this would be neat for anyone who's interested in this kind of thing
I'll add more stuff as I find out about it or think of it.
- 14
-
devil isnt linked apparently
-
Incloudibly took 12h to respond to a broken hdd ticket which didnt let the server boot - we switched after that
ovh support isnt as bad as everybody tells you
a normal sales question i wrote at 3 in the morning got answered around 10 on the same day
i personally never had issues with their support and ive been with them for 5 years now
Sent from my iPhone using Tapatalk
- 1
-
The number_ex issue is just a division by 0 crash. (the "random()%div" part, div = 0 -> crash)
- 1
-
How much would you pay for a fast patch server with plenty of bandwidth?
Let me throw my research for that in here
OVH just changed their VPS offers
The cheapest one has 10TB @ 100mbit guaranteed for 2.40€ (germany)
So, ~24€ for 100TB @ 1GBit (can use OVHs load balancing ip with those)
Probably would want to set up a cache on these and just have a global "distribution" server if the files exceed the available storage
If you were to want to go really crazy just grab one of these for the backend
Then there's Leaseweb:
http://www.leaseweb.com/en/dedicated-servers/100-tb-traffic-servers
Downside it's not as cheap and has no DDoS protection
Thats the cheapest in terms of (good quality) bandwidth I've found
-
So, this isnt exactly related to Metin2.
But within this day I had two seperate attacks on two unrelated Metin2 Homepages.
People are using WordPress websites to relay requests.
access.log looks something like this:
173.236.144.96 - - [22/Feb/2014:00:57:34 +0100] "GET /?2554596=7542239 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://www.graphicdesignblender.com" 195.154.120.142 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.6.1; http://delicesetdecadence.blog.lemonde.fr" 8.14.117.89 - - [22/Feb/2014:00:57:34 +0100] "GET /?2852111=9681641 HTTP/1.0" 403 162 "-" "WordPress/3.7.1; http://www.garancedore.fr" 65.98.60.98 - - [22/Feb/2014:00:57:34 +0100] "GET /?8331124=3589667 HTTP/1.0" 403 162 "-" "WordPress/3.4.1; http://www.cpcstrategy.com/blog" 69.163.171.127 - - [22/Feb/2014:00:57:34 +0100] "GET /?8798433=9569671 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://www.bmeasure.com" 67.205.2.183 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://unconferenz.com" 109.168.123.104 - - [22/Feb/2014:00:57:34 +0100] "GET /?2400804=4166790 HTTP/1.0" 403 162 "-" "WordPress/3.5.1; http://www.cluster.eu" 97.74.144.211 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.4.2; http://thenewprosperity.org" 216.92.131.44 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.8; http://www.triplepundit.com" 89.151.73.40 - - [22/Feb/2014:00:57:34 +0100] "GET /?9155553=5259788 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://es.blog.eu.playstation.com"
You can prevent them from overloading your server by simply blocking the WordPress useragent.
You do this on nginx via:
if ($http_user_agent ~* wordpress){ return 403; }
Google also pointed me to this, which has a tutorial for Apache
iMer
- 5
How To Fix Messenger SQL Injection
in Bug Fixes
Posted
Dif to kill the function for 2089M (to allow for a transition period)
game_2089M
0010F5C3: 31 90
0010F5C4: C0 90
0010F5C5: 8B 90
0010F5C6: 03 90
0010F5C7: 8B 90
0010F5C8: 50 90
0010F5C9: F4 90
0010F5CA: 85 90
0010F5CB: D2 90
0010F5CC: 75 90
0010F5CD: 22 90