|
You last visited: Today at 04:11
Advertisement
Simple Question for the experts
Discussion on Simple Question for the experts within the SRO Private Server forum part of the Silkroad Online category.
06/28/2020, 03:06
|
#1
|
elite*gold: 14
Join Date: Feb 2016
Posts: 1,607
Received Thanks: 445
|
Simple Question for the experts
I will appreciate if you read all.
Hello everyone, today i have a serious question that may take the next year time of my life. So what ever you do, answer honestly.
What should i learn before i start make my own filter.
there're some good few filters out there, that owners only selling it per month, which will cause a "depending project" which we all hate.
So i said to my self why not making your own filter, so here i am asking you experts, i have enough money to spend the next year of my life without work just learning how the filter work.
Do not replay with the advanced things, and guessing that i have the basics, well really appreciate if you replay to me as i am a "white paper"
i am 0, so what do i need to learn to jump from ZERO to PRO. so i can make my own filter from zero to the best filter "that fit me"
Thanks in advance.
|
|
|
06/28/2020, 03:29
|
#2
|
elite*gold: 0
Join Date: May 2017
Posts: 1,081
Received Thanks: 224
|
great idea if anyone explain
|
|
|
06/28/2020, 09:04
|
#3
|
elite*gold: 192
Join Date: Apr 2020
Posts: 47
Received Thanks: 22
|
In order to explain how a filter works I have to ask first if you have at least some basic programming skills, and if you know any programming language
|
|
|
06/28/2020, 11:25
|
#4
|
elite*gold: 14
Join Date: Feb 2016
Posts: 1,607
Received Thanks: 445
|
Quote:
Originally Posted by CloudStrife^
In order to explain how a filter works I have to ask first if you have at least some basic programming skills, and if you know any programming language
|
Well, this is the question.
I want to know what should i learn to be able to make my own filter.
Which language should i learn, i believe C#, but i believe also that C# alone will not lead me to anything, i am sure that i need more stuff to learn
So i need someone to tell me some names for example
(SQL - Python - C# - Reverse engineering)
for me, i know nothing about programming skills.
|
|
|
06/28/2020, 11:49
|
#5
|
elite*gold: 192
Join Date: Apr 2020
Posts: 47
Received Thanks: 22
|
Quote:
Originally Posted by alydandy
Well, this is the question.
I want to know what should i learn to be able to make my own filter.
Which language should i learn, i believe C#, but i believe also that C# alone will not lead me to anything, i am sure that i need more stuff to learn
So i need someone to tell me some names for example
(SQL - Python - C# - Reverse engineering)
for me, i know nothing about programming skills.
|
Ok, I see.
Consider, first of all, that programming and in general computer science is a very large world that is not easy to learn in few days, and every single components of this world is a bit necessary for our purpose. But let's start from the beginning.
I will give you a brief overview of what you need, and why.
- Basic Programming skills: learn a procedural language, doesn't really matter which one (I suggest C). This is important to learn to write algorithms, the use of variables, if, while, for.
- Object Oriented Programming: when you have already learn the basics, you can switch to object oriented. You will learn to define classes, methods, and so on. For our purpose, C# will be the best choice.
- Multithread and Gui: This must be learn because our filter is not a single program execution, it has listeners and execution must run in parallel. Let's say it must be able to do many thing at the same time. In addition, a GUI interface is needed. the IDE (Integrated Development Environment) will help you to create GUI.
- Networking and Distributed Programming: Our filter is a program that works with connections. It is a Server to which many Clients connect to.
You have to learn how to create connections listeners and to manage communications. This is called socket programming.
In addition, some basic network protocols knowledge is required (TCP/IP, UDP, IPv4...)
- SQL and Embedded SQL: Our filter is a program (or we can call it a Server now) that must read and write data to game databases. For this reason, SQL knowledge is required.
When you are able to write queries in SQL, you also will have to embed these queries in your filter. Your filter must be able to run queries itself. This is Embedded SQL.
Every other computer science knowledge will be useful for this purpose, not only to write the filter itself but also to find problems related to it. When you are coding something, nothing will work at the first time  . You have to debug and understand problems.
This is a very summarized overview  . Hope it will be useful to you and feel free to ask any question.
|
|
|
06/28/2020, 15:48
|
#6
|
elite*gold: 14
Join Date: Feb 2016
Posts: 1,607
Received Thanks: 445
|
Quote:
Originally Posted by CloudStrife^
Ok, I see.
Consider, first of all, that programming and in general computer science is a very large world that is not easy to learn in few days, and every single components of this world is a bit necessary for our purpose. But let's start from the beginning.
I will give you a brief overview of what you need, and why.
- Basic Programming skills: learn a procedural language, doesn't really matter which one (I suggest C). This is important to learn to write algorithms, the use of variables, if, while, for.
- Object Oriented Programming: when you have already learn the basics, you can switch to object oriented. You will learn to define classes, methods, and so on. For our purpose, C# will be the best choice.
- Multithread and Gui: This must be learn because our filter is not a single program execution, it has listeners and execution must run in parallel. Let's say it must be able to do many thing at the same time. In addition, a GUI interface is needed. the IDE (Integrated Development Environment) will help you to create GUI.
- Networking and Distributed Programming: Our filter is a program that works with connections. It is a Server to which many Clients connect to.
You have to learn how to create connections listeners and to manage communications. This is called socket programming.
In addition, some basic network protocols knowledge is required (TCP/IP, UDP, IPv4...)
- SQL and Embedded SQL: Our filter is a program (or we can call it a Server now) that must read and write data to game databases. For this reason, SQL knowledge is required.
When you are able to write queries in SQL, you also will have to embed these queries in your filter. Your filter must be able to run queries itself. This is Embedded SQL.
Every other computer science knowledge will be useful for this purpose, not only to write the filter itself but also to find problems related to it. When you are coding something, nothing will work at the first time  . You have to debug and understand problems.
This is a very summarized overview  . Hope it will be useful to you and feel free to ask any question.
|
I really appreciate your so much explained post.
Okay now i have three questions,
After i learn these 5 , will i be able to create a filter from nothing ?
Also have you created a filter before, or is it a general info you know ?
And do you recommend any website that i should learn from? i will go for udemy.
|
|
|
06/28/2020, 22:50
|
#7
|
elite*gold: 192
Join Date: Apr 2020
Posts: 47
Received Thanks: 22
|
Quote:
Originally Posted by alydandy
I really appreciate your so much explained post.
Okay now i have three questions,
After i learn these 5 , will i be able to create a filter from nothing ?
Also have you created a filter before, or is it a general info you know ?
And do you recommend any website that i should learn from? i will go for udemy.
|
I would say yes, consider what I said at first. This is a very simple overview, it takes years to learn what I have mentioned before.
I don't know about websites, I learned at university and from books. But I remember there was a good C# course hosted from microsoft in video lessons.
The missing part here is the following. Let's assume you learn all the skills you need, however in order to create a filter you have to know what to filter. You need the list of all the malicious packets, and bugs exploiter. This is the hardest part because we have a server side that is a black box, it is hard to discover the vulnerabilities.
|
|
|
06/28/2020, 23:51
|
#8
|
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,486
|
Quote:
Originally Posted by alydandy
Okay now i have three questions,
After i learn these 5 , will i be able to create a filter from nothing ?
|
It's not only the "number of points" you learn or know. It's the overall understanding of the technologies you get. It is good if you know e. g. "how to create a thread", but it wont help much if you haven't understood "how to use a thread effectively". (See [1] for an example I experienced).
I know, it sounds demotivating. What you need for a good application is experience, not knowledge alone. You get knowledge from learning, but you can't "learn" experience. You get experience from working with the language/the tools.
You can compare it to learning a foreign language. It doesn't matter if you "ate" the dictionary and know all the words. Without practice, you can't communicate in that language.
The good thing is: You gain experience while learning. And you learn while gaining experience. It just takes time. It nothing you can force. You'll probably question or even rewrite stuff more than once because you noticed that there is a better way to solve a certain problem. That's perfectly normal and a good indicator on your learning progress. But it might also appear frustrating, so be aware of that.
Never stop learning - that's the most important thing to learn.
A student wanted to receive data from a socket. He decided to receive the data in a loop, and create a thread for each received packet. That way the receiving loop stays clean and the application can take as much as time for processing as it needs. Solid concept. Nice.
Two years forward: The application is increasingly slow. Response time raised from milliseconds to over 5 minutes.
Turns out the data rate went up to 8000/packets per second, while the packets were always only 8 byte long. So this app was now creating 8000 threads per second to parse 8 byte of data. Moreover, 90% of the packets were discarded right away. The system load was at 1200% (meaning there was 12 times as much work as one CPU could handle).
So we now got 8000 threads per second discarding 7200 packets per second. 8000 threads, of which 7200 never needed to run. And a CPU trying to get work done for 12.
Creating and deleting a thread required more time than the actual data processing. Moreover, a thread gets about 2MB stack size. Each thread allocated 2MB of space for processing 8 bytes of data.
Removing all threads got the response time back to a few ms and the overall system load went to under 10%.
A really basic example on how a generally nice sounding idea turned into a disaster. The concept did not fit the requirements of the project. This was the result of lacking experience.
|
|
|
06/30/2020, 16:55
|
#9
|
elite*gold: 14
Join Date: Feb 2016
Posts: 1,607
Received Thanks: 445
|
@ 
@
So there're no like some courses names that i can go for it and after a year i can create my own filter?
I mean i know that my first filter will not be the best filter, but at least i will be able to make a one? so after i keep improving it and upgrading it and fixing it.
I do appreciate your so much explained posts btw <3
|
|
|
07/02/2020, 13:55
|
#10
|
elite*gold: 0
Join Date: Jul 2014
Posts: 187
Received Thanks: 70
|
Quote:
Originally Posted by alydandy
@ 
@
So there're no like some courses names that i can go for it and after a year i can create my own filter?
I mean i know that my first filter will not be the best filter, but at least i will be able to make a one? so after i keep improving it and upgrading it and fixing it.
I do appreciate your so much explained posts btw <3
|
Generally.. you will be insanely lucky if you find a course that's teaching how to build "the thing" you are building. As mentioned above already
"It's the overall understanding of the technologies you get." For filters specifically, you'd need to know several things before you start building your own. Probably 99% of the filters out there use SilkroadSecurityAPI to handle packets, what are you planning to use? If you are going to use the said library, you will have to go through it's doc to understand what, when and how it does it. IF you are going to build your own... Well good luck  .
Some "networking knowledge" will be good too, say multiple AS/GS configuration through your filter.
If you want to mess only with filters, take one of the already released filters (with source code or just use ILSpy to get one from the non-protected filters), go through it, test stuff, experiment with stuff.. And whatever you don't understand go and try to learn it. Then try to build your own.
tl;dr : You can't really go on the internet and write "C# filter tutorial plis", you need to put together the puzzle yourself, sadly. Good luck.
|
|
|
All times are GMT +1. The time now is 04:12.
|
|