How do I prevent the user from de-compiling my C# application?

  Рет қаралды 33,349

IAmTimCorey

IAmTimCorey

Күн бұрын

How do you prevent your code from being stolen? How do you stop people from decompiling your application? How do you protect your intellectual property? These are the questions we will tackle in this episode of Dev Questions.
Podcast: iamtimcorey.com/p/podcast
Mailing List: signup.iamtimcorey.com/
Purchase Courses: iamtimcorey.com

Пікірлер: 187
@wayahedia9989
@wayahedia9989 3 жыл бұрын
When you were describing debugging obfuscated code I was thinking.. "hey.. that's what my normal code is like"!
@musandlala7991
@musandlala7991 3 жыл бұрын
Job security 🤣
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
😂
@X400DYL
@X400DYL 3 жыл бұрын
HAHA Can so relate :)
@paragraut3504
@paragraut3504 3 жыл бұрын
I really feel bad to know that people are literally stealing your paid course material. You put a lot of effort making those
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I do. I'm glad that most people don't try to shortcut the process.
@paragraut3504
@paragraut3504 3 жыл бұрын
@@IAmTimCorey true
@johncraig5979
@johncraig5979 3 жыл бұрын
@@IAmTimCorey I saw a certain frequent Udemy instructor create a AppSettings course a few weeks after your announcement and release on iamtimcorey. It made me go: "Hmmmm"
@NiquelBones
@NiquelBones Жыл бұрын
I mean if you crack an online course you don't get all the features like tutoring and one-on-one coaching which is half of the value in most courses so i'd assume it's something similar here. If you want the free videos go ahead but paying is still gonna give you more features.
@shadmansudipto7287
@shadmansudipto7287 6 ай бұрын
What about the people who want to pay but can't? International payment is a luxury, something you don't realize.
@Ray85grr
@Ray85grr 3 жыл бұрын
Just wanted to stop a minute and thank you for your videos :) really well done and very clear.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You're very welcome!
@markjohnson4572
@markjohnson4572 3 жыл бұрын
A very logical overview of a subject I've pondered previously. Great to get the thoughts of a more experienced developer. Much appreciated, thanks.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad you enjoyed it!
@KenMetcalf
@KenMetcalf 3 жыл бұрын
Very interesting discussion. We develop software for the Financial and Banking industry and are forced to pen test our software. We have successfully used Wibu Codemeter for years now. Very fast to protect. Anti tamper/anti debug and runs on all current desktop and server os’es. Licensing comes as a bonus. I used HASP in the 90’s for some FORTRAN cad software but this is just light years ahead. Keep up the great work.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks!
@Bob-ts2tu
@Bob-ts2tu 2 жыл бұрын
funnily i tried HASP myself early 2000's, and only a month or so ago re-discovered my box of unused both pass through serial and usb hasp's. It seemed a great idea, but in practice wasn't a great success as my agents didnt like them, so i dropped the option and stuck with a software licence key. I'm sure they have a place somewhere, but not for me.
@Tanner_o
@Tanner_o 3 жыл бұрын
It's incredible how right you are as always. You have always help me not with only learning some new programing language, but being a better person and provider. I'm impressed of your words because 2 years ago I loose a client because obfuscating my app, antivirus detected as a malware because of very high encrypted method, I couldn't change his mind it was the security level of my app. Thank you Corey, long life.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you for sharing that life experience, a tough one to face, I am sure.
@eyesuskirstos
@eyesuskirstos 3 жыл бұрын
Thanks! If u can please have a tutorial about licensing, and preventing app from used freely.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for the suggestion. I have added it to the list of possible future topics.
@harag9
@harag9 3 жыл бұрын
I was going to ask about this too.
@im_that_guy
@im_that_guy 2 жыл бұрын
Was this ever made?
@StudentCompanion
@StudentCompanion 3 жыл бұрын
Thanks for your advice on this topic.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@tahakara2358
@tahakara2358 Жыл бұрын
One of the best videos I've ever seen in my life. Great explanation and great pronunciation. Best Regards Tim Corey
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thank you!
@Bob-ts2tu
@Bob-ts2tu 2 жыл бұрын
I looked into the whole issue of this years ago for my vb and c# apps and came to the conclusion that there's no totally secure way if someone really wants to hack you, as the cost and hassle outweighs the risk (at least for me) so decided obfuscation was the only realistic way forward for me as a small developer to provide at least some security. You need to know your market, who would pirate it, and is it worth their time, what about new features, how many customers etc, basically all the points Tim makes, so sensible as always Tim, & thanks for confirming my own thoughts. GL
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thanks for sharing.
@James-rx5eb
@James-rx5eb 3 жыл бұрын
Someone told me their experience: decompiling one feature from a scientific program to see how they did it was ~1600 lines and took about 16 hours. Implementing it from scratch with the research paper once the method was known took about 2 hours. That's 16 hours of figuring out variables, figuring out dependencies, imagining code that didn't decompile correctly, and working through generated Windows Forms code.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
The effort has to justify the value. Your person did it to practice and learn. In most cases it just does not seem worth the effort.
@swordblaster2596
@swordblaster2596 3 жыл бұрын
I'm glad you were upfront with people - if it runs on an external computer - someone who is determined to, can reverse engineer it, no matter what. It's just a fact and any products claiming otherwise are misleading.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
True, so we just need to stay focused on the client and producing a quality product. Still, we can protect the import parts of our code where possible. Keep the key parts back on your server whenever possible.
@secondline08
@secondline08 3 жыл бұрын
Thanks For Sharing.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
My pleasure
@FaizulHassan-ek2mw
@FaizulHassan-ek2mw Жыл бұрын
Simply great !
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks!
@codingwithgyver1637
@codingwithgyver1637 3 жыл бұрын
Thank you for raising this topic. Now I know the comments' opiniond on obfuscating. yes obfuscating protects from cracking the internal logic but sometimes makes performance go down or the worst, untraceable bug. Nowadays, more hackers can still bypass protection
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yes, that is reality
@Istvan_01234
@Istvan_01234 3 жыл бұрын
I wouldn't worry about this topic anymore, because: - nowadays all of the apps are served (or relatively easy to make it) by a backend (even it's a web, mobile or desktop app), so all of the business data and logic are in a secure place. The client app serves as a presentation layer simply. So if anyone wants to steal my colors, styles etc.. Good luck, let's do it.. - Furthermore there are some "law" considerations (especially if you are coding as a 'business'). It's more a b2b thing but it may protects versus the dirty competitors. - Finally me as an user never use 'hacked' software. Who can change an app by removing certain restrictions also able to add malicious code. So as an user I wouldn't take the risk to save a couple of dollars by putting my system in a danger.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for sharing your perspective.
@CoderGuy
@CoderGuy 2 жыл бұрын
Hi Tim, can you please make a tutorial on Reporting solutions and which one to use when? Like we use Crsytal Report, but want to move on to a modern solution. Should we go for RDLC or SSIS or PowerBI - I am confused. Also detailed course on Crystal Report or PowerBI or SSIS or RDLC are much appreciated.
@iulianaciobanitei9509
@iulianaciobanitei9509 3 жыл бұрын
Hi! I would like to ask you, how do you keep the versioning coherent between your web API software and stored procedures?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I'm not sure what you mean. Your API and your stored procedures don't have to be in sync. If you are changing functionality in the stored procedures that would change the input or output of your API, you would need to increment the version number of your API and create a copy of the stored procedure (unless it was a bug fix but even then, that is tricky).
@anthonymarquez2542
@anthonymarquez2542 3 жыл бұрын
Tim is 100% right you aren’t going to stop decompilation
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep, just discourage it.
@anthonymarquez2542
@anthonymarquez2542 3 жыл бұрын
@@IAmTimCorey I’ve been on a kick looking into decompilation software and with the advent of Ghidra being open source that is the best move.
@michaelhenry4667
@michaelhenry4667 2 жыл бұрын
You are great sir. Love you
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thank you!
@FISS007
@FISS007 3 жыл бұрын
Paying customers will always pay for your apps even when they get cracked. Non paying thieves will always steal no matter what.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep.
@MessingWithCode
@MessingWithCode 6 ай бұрын
Thanks so much!!!
@IAmTimCorey
@IAmTimCorey 6 ай бұрын
You are welcome.
@MaryamAv
@MaryamAv 3 жыл бұрын
thank you for your good video and it's a shame that some people steal your work ..
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@dingdong141
@dingdong141 3 жыл бұрын
I belong from country where piracy is norm. Man i use to do it also. But as i progressed in software development i came to know it is really hard to develop every thing content, games, softwares Pay for them if you can. No i happily pay for softwares, games books etc. One thing i have noticed being in third world countries most content publishers have no idea about bad currency conversion rates we have to suffer from. Only steam provide a regional pricing that make us buy game in good prices. I have spoken my heart. I am against piracy now. Tim may God Bless you. Excellent content as always.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Great! As for the currency conversion issue, I get that but there is another side to that. Yes, if the software owners sell at a rate that is reasonable for your currency, they will get more sales. However, they will also get more customers that they have to support. However, they have not received enough money to effective support those users. I had this with Udemy. I pay a US-based employee full-time to help me support users, but I was getting paid (on average) around $1 per course sale. I would need dozens of course sales (which are one-time things) to pay for even one hour of his time. That's what makes it hard to have regional pricing.
@dingdong141
@dingdong141 3 жыл бұрын
@@IAmTimCorey I agree it is diffcult to make course as long as number of sales are less. Providing user support is a challange. You are one of the best developer in .net domain which is producing alooooot of free and valuable content..... But i think your channel is still under rated. You should get alooot more views and success. I do watch ads on your videos. Just to support your channel..... I know it is a small contribution but if everyone do it i can help you.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I really appreciate it.
@lupusrex3624
@lupusrex3624 3 жыл бұрын
Hi Tim, Thanks for the video
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you. I have added this to my list of possible future topics.
@marcusmaunula5018
@marcusmaunula5018 3 жыл бұрын
Just a question from your EF Core video (not sure anyone ever answers on old videos so). What is your opinion of writing async data layers vs non? That could be a discussion to compare pitfalls and benefits of both approaches.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I prefer to call my database asynchronously, so that I don't lock up my UI waiting for data to be transferred. That masks a lot of database issues and makes your application look more responsive.
@avinashkarat
@avinashkarat 3 жыл бұрын
Hi Tim, could you create a video under the Dev Question series on the importance of having a side project while learning .Net. Also would be better to point out some direction on what all sample things we can develop, also how can we squeeze out time to do that in the midst of our daily busy schedule of work/family time etc.?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I appreciate the suggestion and added it to my list.
@HussainGhuloumQ8
@HussainGhuloumQ8 3 жыл бұрын
Hello Tim, thank you as always. any updates on Xamarin Course? do you have future plans for flutter?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thank you. I have added Flutter to my list of possible future topics. Note, I have tons of topic suggestions and adding an item to my list does not equate to a promise to ever make a video. I use the lists to gage interest levels in topics.
3 жыл бұрын
Hi Tim, Thanks for this one. Useful as always. Maybe someday something on the subject "desktop client vs web client"? :) I think it would be an interesting topic to cover.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@p199a
@p199a 3 жыл бұрын
best way to protect your code it to constantly work on it. If u update your app consumers will follow newest update and decompilers will stay behind
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Yep.
@harag9
@harag9 3 жыл бұрын
Go back to the old days of spaghetti code, then it's more confusing for people when they decompile it.
@yudanaim6849
@yudanaim6849 3 жыл бұрын
Very good video
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks
@pixelmasque
@pixelmasque 4 ай бұрын
can C# be compiled to machine code to run on a server? or is it always JIT?
@mariusstefan792
@mariusstefan792 8 ай бұрын
So, if I made a site in blazor webassembly, and we use c# code in the .razor pages, is it possible for the user to see that c# code?
@IAmTimCorey
@IAmTimCorey 8 ай бұрын
Yes. It also doesn't matter if you put your code in a dll. If your Blazor WebAssembly application calls that dll, the user can see the C# code in that dll. That is the nature of client-side applications. The same is true for Angular, React, and Vue. The user can see all of the source code. That is why we say not to put anything sensitive in the source code (database credentials, etc.) You need to call an API if you are using a fully client-side application.
@mariusstefan792
@mariusstefan792 8 ай бұрын
@@IAmTimCorey I guess the one in .cs is also visible, right?
@mariusstefan792
@mariusstefan792 8 ай бұрын
@@IAmTimCorey But on server side?
@IAmTimCorey
@IAmTimCorey 8 ай бұрын
Yes, all C# code is visible, regardless of where it is located. As for Blazor Server, it does not do things this way. It is a server-side language, which means that the user does not gain access to any C# code at all.
@pomodorobreaklessons
@pomodorobreaklessons 3 жыл бұрын
200K loading... Great video as always!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks!
@ultralord2889
@ultralord2889 3 жыл бұрын
Hey tim, great video. What kind of decompilstion software exist? Ilspy is a good one to look into dlls, i but would actually like to try to compile a program and try to reverse engineer it. Have a good one
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Interesting exercise but I will let you web search all the options. I will stay focused on the coding.
@BarneyMyBoy
@BarneyMyBoy 3 жыл бұрын
Hi Tim, can you please do a tutorial of the pricing structure for C# desktop application? Or maybe how to price a desktop app and cloud app subscription ? Thanks
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@vedprakash-zz6hb
@vedprakash-zz6hb 3 жыл бұрын
Not expected this much theory 😎. I always admired Tim for the practicals in his videos but things are changed.
@darbychrism
@darbychrism 3 жыл бұрын
I am interpreting Tim's presentation more so as an effort to educate developers about the overall challenge and to suggest different ways of looking at the problem. Instead of attempting to fully lockdown source code, he's advising that developers implement some reasonable protections to delay theft by the less experienced, and accepting that some small percentage of theft might occur and is an acceptable loss. The strategy with this is to not frustrate one's customers with difficult to activate software involving excessive security restrictions.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
This isn't theory, it just isn't code. This is real-world advice for software developers that doesn't specifically focus on the code itself but on how to navigate the world as a software developer. I still offer a coding video every Monday. I've just added a video on Thursdays around answering the questions developers have.
@232techtalk
@232techtalk 3 жыл бұрын
Hi Tim, thanks for all of your videos I really do appreciate them and they've been really helpful. My question here is apart from 'ADVANCED INSTALLER' is there any other tool I can use to build my c# desktop apps to production? Love from Sierra Leone 🇸🇱🇸🇱🇸🇱🇸🇱🇸🇱🇸🇱🇸🇱
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Sure. I've covered MSIX, ClickOnce, and Squirrel on this channel. There are also other MSI creator tools out there as well.
@232techtalk
@232techtalk 3 жыл бұрын
@@IAmTimCorey Thank you very much sir I really do appreciate your help, can you please help me with the link to those videos so I can watch them, and thank you once more.
@pomodorobreaklessons
@pomodorobreaklessons 3 жыл бұрын
Here you go: m.kzbin.info/www/bejne/jWm0pmengq-snpY m.kzbin.info/www/bejne/aqWVhXxuftKqg7s You can use the search feature on the channel to find videos.
@mfinixone1417
@mfinixone1417 3 жыл бұрын
Thanks
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@slipoch6635
@slipoch6635 3 жыл бұрын
With a language like C# that is semi-compiled (jitted languages) it's almost impossible to stop. C++ you can obfuscate the code a bit more, but people can still decompile as it has to be able to run as machine code anyway as he says you can never fully protect your code.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
True, so we just need to stay focused on the client and producing a quality product. Still, we can protect the import parts of our code where possible. Keep the key parts back on your server whenever possible.
@slipoch6635
@slipoch6635 3 жыл бұрын
@@IAmTimCorey yeah these days I'm doing more webapps than applications, but a lot of application work unfortunately it's near impossible to make it very hard particularly with jitted languages. I mean even 3ds back when they had the physical dongles got cracked pretty fast.
@user-ny7el1sp6h
@user-ny7el1sp6h 4 ай бұрын
So let's say if I wanted to make a competitor to Adobe Photoshop using C#, it would be pointless to sell because anyone could just decompile & remove the activation check? Obviously it has been done for the actual Adobe Photoshop several times so there is no foolproof method, but definitely choose another language to code such a product?
@IAmTimCorey
@IAmTimCorey 4 ай бұрын
The language you use doesn’t matter.
@zebedie2
@zebedie2 3 жыл бұрын
I think the obfuscation from red-gate are probably the best ones, or at least the most difficult to decompile after the fact.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
They are some of the most expensive. I'm not sure they are that much better than other options, though, when it comes to decompiling. They do have nice reporting features, though.
@zebedie2
@zebedie2 3 жыл бұрын
The test is usually to try and decompile to IL and then recompile from IL back into a dll. With some tools this is possible quite easily, with red-gate they some how have a way of using invalid characters in the symbol names which prevents recompilation. Typically this is the approach you'd take if you were trying to work around a serial code etc built into the app
@markgrecco2795
@markgrecco2795 3 жыл бұрын
I like how your courses are a good price and with all the extra youtube videos on top of it it's well worth the money. I did the blazor server course and am thinking about doing some C# ones. One video that would be nice to see is an expansion on the blazor server authentication topic. So using the template authentication option but then scaffolding it out so you can integrate your own modifications or coupling that up with another database for those of us who don't want EF for the entire project. Of course this is just my personal dilemma as I'm going to start an entirely new project soon and want to do it in blazor :)
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for the suggestion. I have added it to the list of possible future topics.
@randome9005
@randome9005 7 ай бұрын
I was just about to obfuscate. hahahah. Thank you for preventing me messing with my self :D
@IAmTimCorey
@IAmTimCorey 7 ай бұрын
You are welcome.
@synchro-dentally1965
@synchro-dentally1965 3 жыл бұрын
The same idea is applied to safes. They're rated by how long it takes to break into them.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Interesting, thanks for sharing.
@marcusmaunula5018
@marcusmaunula5018 3 жыл бұрын
Did you do a deep drive into Unit Testing already?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
kzbin.info/www/bejne/eqjFiquGYsqng7s and kzbin.info/www/bejne/q5OWgWuZbZyWrc0 - see what you think of those
@marcusmaunula5018
@marcusmaunula5018 3 жыл бұрын
@@IAmTimCorey That I need to improve my search capacity :D
@Tamer_Ali
@Tamer_Ali 3 жыл бұрын
Hi Tim, What is Microsoft.Identity.Web and How to use it? Thanks
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Topic suggestion noted and added to my list, thanks.
@kamalzubairov2344
@kamalzubairov2344 3 жыл бұрын
What about using tools such as NGen for pre-compiling .NET assemblies?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
That is just pre-compiling your code (instead of using JIT) to make it run a bit faster. That doesn't secure it in any way.
@kamalzubairov2344
@kamalzubairov2344 3 жыл бұрын
@@IAmTimCorey But after all I would have the code that doesn't have any names of classes and structs or whatever. This would make decompiling hell of a lot harder
@marcusmaunula5018
@marcusmaunula5018 3 жыл бұрын
I think the key is to differentiate between those who pirate for industrial purposes to make money and the ignorant user who thinks the are doing nothing wrong. The latter can always be encouraged and nudged to do the right thing while the first shold be hunted down by authorities.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I do wish the authorities would do a better job with protecting digital assets.
@marcusmaunula5018
@marcusmaunula5018 3 жыл бұрын
@@IAmTimCorey They probably try but they are facing industrial strength groups with lots of resources behind them. Anyone who visited a market in East Asia knows how hard the battle is. They should try though.
@kennyarnold6848
@kennyarnold6848 3 жыл бұрын
Tim calling out the Defense Contract Management Agency (DCMA)
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@aidanapword
@aidanapword 3 жыл бұрын
Sometimes wish people would just know the definition of obfuscation: to make deliberately obscure. Obfuscating code is just making it obscure. If it is in public space you must assume it has been hacked.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Pretty much.
@lopangolo
@lopangolo 3 жыл бұрын
What about Wibu codemeter or sentinel hasp ?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
They are options to help, but they aren't perfect. They are also one more hoop for your users to jump through. For example, Hasp is not yet Windows 10 compliant. That limits who can use your application and it doesn't fully prevent piracy. Don't get me wrong - security measures do make piracy more difficult, which greatly reduces the odds of it happening but that does not mean it won't happen.
@TarrafTarraf
@TarrafTarraf 3 жыл бұрын
does partition or 2 parties or 3 parties solve that?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I am not sure what you are asking.
@TarrafTarraf
@TarrafTarraf 3 жыл бұрын
@@IAmTimCorey hi, i mean to make your app many parts so if anyone decompile one the other don't work, or you can't run the app if the server don't approve it .
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
That would not really solve anything. If they decompiled one part of your app and recreated it, it would interact with the other parts as if it were the original application.
@windowsbuilderthegreat3121
@windowsbuilderthegreat3121 Жыл бұрын
When Native AOT becomes wide spread, wouldn’t using that in your applications make it harder to decompile, due to your c# compiling into native code rather than the IL
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Nope.
@distortions
@distortions 5 ай бұрын
the dll stores everything the normal c# exe would have
@firebird123456789009
@firebird123456789009 2 жыл бұрын
it is very easy to decompile applications today with tools like DNSPY and then saving as a VS project if there is no protection ............protected your code and well being use VMP or thermidia with a mixture of self written string obfuscation to hide strings from memory and try as they will its just not worth the time at that point to decompile your programs because youd need to get rid of all the virtualization from the program and anti debug and anti tamper then decompress it then the string obfuscation ontop of it
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
It's all about tradeoffs, though. All of the obfuscation and other tools used also make the application tougher to debug, especially in production. So then you have to consider which is more common: you needing to debug your application or someone else decompiling your application. One is going to suffer. You need to pick which one.
@ZeroSleap
@ZeroSleap 3 жыл бұрын
The best way to prevent decompilation of your project?Have it open source! :P no-one will bother if they just have the source code!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
There you go.
@akshayrajgollahalli
@akshayrajgollahalli 3 жыл бұрын
Does C# compile to machine code?
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
No, it compiles to IL-code (Intermediate Language), which the framework then executes.
@akshayrajgollahalli
@akshayrajgollahalli 3 жыл бұрын
@@IAmTimCorey similar to Java right? Because Go compiles to byte code and it is difficult to reverse engineer it. Also I wonder why not compile it to byte code?
@michaelnurse9089
@michaelnurse9089 3 жыл бұрын
Random thought: I remember the creator of Leisure Suit Larry (unless you were a kid in the 80's - keep walking) saying his game was the most pirated piece of software ever. This was not his armchair opinion but a verifiable fact because he sold 10 000 copies and 6 MILLION hint books. Lol.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@beautifulheartsoothingreci28
@beautifulheartsoothingreci28 3 жыл бұрын
My code is so smelly noone would want to reverse engineer that 😂
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@FrankPapadakis
@FrankPapadakis 3 жыл бұрын
I'll just write trash code so no one wants to steal it but work really hard at marketing it so people buy it. Viable solution? Perhaps...
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
That's an interesting strategy.
@yudanaim6849
@yudanaim6849 3 жыл бұрын
WebGl 2.0 / former open gl got more security.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
That doesn't really have any bearing on what we are talking about, plus it is no more secure than any other software.
@grail9558
@grail9558 3 жыл бұрын
Anything can be reverse engineered.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Truth
@Kupsko
@Kupsko 3 жыл бұрын
i don't understand why compilers won't obuscate by default since its inneficient storing long variable property names lol
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
It makes it much harder to debug production issues when you obfuscate. If you have a log statement of an error, which is easier to diagnose: "method A had an issue with parameter a1" or "method LoadPerson had an issue with parameter Id"?
@Kupsko
@Kupsko 3 жыл бұрын
@@IAmTimCorey true :D
@roelbrook7559
@roelbrook7559 3 жыл бұрын
If they would have just gotten proper AOT compiling on .NET 5... This video would have been pointless. How about a C# -> C++ transpiler? And it's DRM. You can use the DCMA to sue them when doing it :)
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
To address the DRM issue, not really. If a company in Russia takes your content, you have to get the Russian authorities to intervene. That doesn't usually happen. Ask me how I know.
@enciphered7650
@enciphered7650 3 жыл бұрын
Tim you're kind of over exaggerating how hard it is to decompile and rebuild an application. I've done it to applications built by big tech like Oracle and I'm talking about projects that are absolutely massive and still it takes me at MAXIMUM a day.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You can get faster at it as you get experienced but I wouldn't say this is typical.
@enciphered7650
@enciphered7650 3 жыл бұрын
@@IAmTimCorey That's true. I would technically be considered an expert in the language. Also I have decompiled quite a few apps.
@arkadiusz6688
@arkadiusz6688 3 жыл бұрын
12:21, I have to respectfully disagree. If thousants of people buy my software, then impact of piracy is generally much less. Not in value, but in percentage which is mainly the thing.
@shinyshark2247
@shinyshark2247 3 жыл бұрын
It depends. Like he said; if your application isn't that impactful the demand for it is less. If the demand for your product is low, you'll have a much lower chance to have it cracked. Take a completely fictional popular piece of software called PictureStore for example. It may sell at millions of copies a year which means that it is more likely to be seen by those with the ability to decompile and distribute it. If your small application gets cracked and distributed without your consent when the demand for it is low you've either made enemies with the wrong person or you're on the way to 10.000 downloads.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
There is a difference between can and will. They can pirate your application when only a couple of people are interested in it. They will pirate your application when it gets big enough to interest enough people. Piracy takes time and effort. Often, that time and effort is spent on the biggest return (popular software). Unpopular software does not get the same attention usually.
@youtube.com-handle
@youtube.com-handle 3 жыл бұрын
"dont hurt the people who are buying your software" hahaha reminds me of the first application i ever released the licensing v1.0 was hell, so i created a software to handle all that, right? and after it successfully licenses the software it deletes the licensing dlls in order to prevent the customers from redistributing the software, cant say i am proud of that, but on some level.. yeeeeeah
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
LOL - Thanks for sharing!
@melissali1571
@melissali1571 2 жыл бұрын
Impossible ! Cracking c# apps are too easy, no matter what obfuscation... Virtualization will make it annoying but...
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Did you actually watch the video?
@eth6706
@eth6706 3 жыл бұрын
Video starts at 3:00
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Clarification, the part you are interested in starts at that time in the video. Many folks need to hear the previous information. Either way, thanks for sharing your thoughts.
@greg1486
@greg1486 3 жыл бұрын
if(code == "decompiled") DeployAssassinDrones();
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
lol
@neointel0092
@neointel0092 3 жыл бұрын
this guy needs to work at ubisoft
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I don't want to have anything to do with big game development. That's a bad environment to be in.
@yudanaim6849
@yudanaim6849 3 жыл бұрын
I opened a you tube channel and found my videos in an Indian compilation So i closed the channel I think it was stupid cause if people's stealing from you it means you have value. Can't stop it Just as you said make it more protected
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
In that specific instance, you can report them to KZbin and they will be taken down (I've done that multiple times).
@jeffbeck6501
@jeffbeck6501 2 жыл бұрын
1.25X playback speed
@MobilTemp
@MobilTemp 3 жыл бұрын
Bad intro voice...
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Thanks for your opinion. I disagree, though.
@MobilTemp
@MobilTemp 3 жыл бұрын
@@IAmTimCorey i did not mean ur voice. It's good. I meant the random voice the start.
@siavash2176
@siavash2176 3 жыл бұрын
Preventing desktop apps piracy is impossible, so don't bother your self at all.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You should probably do something so that users cannot just copy the file to a new computer and use it but I agree that full protection is impossible so keep the protection light.
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 17 МЛН
Should I Build a Desktop or Web Application?
19:15
IAmTimCorey
Рет қаралды 83 М.
Big Changes in .NET 5, C# 9, and Visual Studio 2019 (v16.8)
21:51
IAmTimCorey
Рет қаралды 115 М.
Stackalloc and Spans
30:17
Coding Tutorials
Рет қаралды 8 М.
Avoid this hidden memory allocation in C#
12:38
Raw Coding
Рет қаралды 6 М.
10 C# Libraries To Save You Time And Energy
33:59
IAmTimCorey
Рет қаралды 203 М.
Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!
8:30
What is Span in C# and why you should be using it
15:15
Nick Chapsas
Рет қаралды 246 М.
Intro to Redis in C# - Caching Made Easy
1:27:29
IAmTimCorey
Рет қаралды 171 М.
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 17 МЛН