What, exactly, is the business problem you are trying to solve? The Oracle Data Masking Pack is for masking data that resides in lower environments when you refresh it from production. Is that the problem you are trying to solve? Or are you trying to do something else-- preventing certain users from accessing certain data elements in production, for example?
You can always try manual masking using datapump and sql and pl/sql (export original data and then create function that will put some random/other data instead of real ones). I have seen some clients that have implemented this type of masking. However, be aware that this will not give the best results, and that it will not come anywhere near quality of Oracle Data Masking Pack's masked data.
Again, what, exactly is the business problem you are trying to solve?
I understand that you want the solution to be free. But I'm still not confident that I understand the problem this solution is supposed to address. People use "masking" in a variety of contexts to mean a variety of different things. That's why I asked initially what problem you are trying to solve.