(.net) Reverse Engineering #1 හැදින්වීම



සුබ දවසක් යාලුවනෙ ගොඩක් කාලෙකට පස්සෙ දාන පෝස්ට් එකක්. කාර්‍ය බහුල නිසා සයිට් එකට තිබුන අවදානය පොඩ්ඩක් අඩු උනා , හරි ආයෙත් සයිට් එක කලින් වගේම update වේවි

අද කතා කරන්න හදන්නෙ Reverse engineering ගැන ටිකක් විතර ඔලුව රිදෙන වැඩක් තමයි ඒත් මේ දෙය අපිට විනෝදානශ්‍යක් විදිහට කරන්න පුලුවන් දෙයක් .මුලින්ම කියන්න ඕනේ මන් මේ දේ ගැන Expert කෙනෙක් නෙවෙයි මන් දන්න දේ ඔයාලත් එක්ක බෙදා ගැනීමේ අරමුණ ඇතිව තමා මේ පොස්ට් එක ලියන්නේ , මේක මගෙත් එක විනෝදාන්ශයක් ඒ නිසා අපි අද බලමු මේ Reverse Engineering කියන්නෙ මොකක්ද කියල

මගේ ගොඩේ වචන වලින් කියනවනම් Reverse Engineering කියන්නෙ , යම් පුද්ගලයෙක් හෝ ආයතනයක් විසින් නිපදවන ලද මෘදුකාංගයක මූලාශ්‍රය තවත් පුද්ගලයෙකු විසින් වෙනස් කර ක්‍රියාත්මක කිරීමක්  උදාහරනයක් විදිහට අපි ගමු serial number එකකින් usage එක limit කරල තියන වැඩසටහනක් අපි හිතමු මේ වැඩසටහනේ අන්තර්ගතය වෙනස් කරල තවත් කෙනෙක් මේ වැඩසටහන තමන්ට කැමති serial number එකකින් වැඩ කරන්න හැදුව කියල අන්න ඒ වගේ දේකට තමා කියන්නෙ Reverse engineering කියල. අපි බලමු .net platform එකේදි මේ දේ වෙන්නෙ කොහොමද කියල .net කියන්නෙ microsoft ආයතනය හදුන්වල දීපු මෘදුකාන්ග Platform  එකක් C#.net , Vb.net වගේ බාශාවලින් ලියපු මෘදුකාන්ග තමා මේ ගොඩට වැටෙන්නෙ , ගොඩක් මෘදුකාංග නිපදවන පුද්ගලයන් තමන්ගෙ මෘදුකාන්ග නිකන්ම අපගෙ අතට පත් කරන්නෙ නැහැ  , මොකද එහෙම උනොත් එයාලගෙ මහන්සිය අපතෙ යනවා . වෙන මහන්සිය ගැන තමන්ගෙම මෘදුකාන්ගයක් ලියපු කෙනෙක් හොදටම දන්නවා , ඒ නිසා එයාල තමන්ගෙ මෘදුකාංගය encrypt කරල තමයි අපේ අතට එවන්නෙ , ඒ උනත් 100% ක් එයාලගෙ මහන්සියෙ ප්‍රතිපල ගන්න බැහැ මොකද , මිනිස්සු හැදන ඕනෙම දේක පොඩි හරි වැරැද්දක් තියනව සහ ඕනෙම දේකට ප්‍රතිවිරුද්ද දේකුත් තියන නිසා ඉතින් අද මම මේ ගැන හැදින්වීමක් කරන නිසා මේ දේවල් ගැන විතරයි කතා කරන්නෙ ඊලග පෝස්ට් පෙලම මේ මාතෘකාව ඔස්සේ පාඩම් මාලාවක් විදිහට පියවර වශයෙන් Reverse Engineering ගැන දන්න හැම දේම කියල දෙන්නම් 

හරි අපි encryption ගැන කතා කලානෙ මේ දේ කරන්න ගොඩක් ක්‍රම තියනවා ගොඩක් මෘදුකාංගත් තියනව උදා ගත්තොත් Dotfuscator , Confuser , Dotnet reactor , Crypto Obfuscater , Smart assembly වගේ ගොඩක් මෘදුකාංග තියනව ඉතින් මේව 100% සාර්තකද? නැහැ , ඇයි මන් එහෙම කියන්නෙ කියල ඔයාලට ඉදිරි පෝස්ට් වලදි දැන ගන්න පුලුවන්

ගොඩක් දෙනෙක් මේ reverse engineering ගැන කතා කරනකොට ඒ දේ ගැන වැරදි ආකල්පයකින් තමා කතා කරන්නෙ ඒත් මේ දෙය නැත්නම් දුප්පත් කෙනෙක්ට කවදාවත් සල්ලි දීල බාවිත කරන මෘදුකාංගයක් පාවිච්චි කරන්න තියා හිතන්නවත් බැහැ , අපිත් අද යම් දෙයක් ගැන දන්නවනම් ගොඩක්ම මේ Reverse engineers ලට පින් සිද්ද වෙන්න තමා , මේ ගැන වැරදි ආකල්පයකින් බලන අයම තමා Cracks හොය හොය අන්තර්ජාලය පීරන්නෙ 🙂

අපි බලමු මේ දේ කරන පියවරයන්

1.මෘදුකාංගය හදුනා ගැනීම 

අපි .net ගැන කතා කරන නිසා අපි මුලින්ම මෘදුකාංගය encrypt කරලද නැද්ද මොන බාශාවකින්ද ලියල තියෙන්නෙ කියල සියල්ලටම පලමුව විස්තර ලබාගන්න ඕනෙ , මේ දේට ගොඩක් මෘදුකාන්ග තියනව Exeinfope ඒ අතරින් හොද මෘදුකාංගයක් අපිට මේ මෘදුකාංගයෙන් පුලුවන් මෘදුකාන්ගය encrypt කරල නම් මොකකින් කලාද කියල හොයාගන්න උදා විදිහට confuser ගමු

2). Encrypted source එක සාමාන්‍ය source එකක් බවට පත් කර ගැනීම de4dot මේ සදහා උදාහරනයක්

3). Decompile කිරීම , මූලාශ්‍රය වෙනස් කිරීම සහ patch කිරීම

අපි සාමාන්‍ය මූලාශ්‍රයක් බවට පත් කරගත් මෘදුකාංග තවත් මෘදුකාංගයක් මගින් මූලාශ්‍ර අපිට කියවිය හැකිසේ පහසුකම් සපයනු ලබනවා ඒ මෘදුකාන්ග බාවිතයෙන් අපිට codes වෙනස් කර අපිට අවශ්‍ය ලෙස සකසා patch නිර්මානය කිරීමේ පහසුකම් ද ලබා දෙනවා . Reflector , dnspy උදාහරන වලට ගන්න පුලුවන් මගේ මතයට අනුව dnspy තමා හොදම. 

හරි ඔන්න මම මගෙ වචන වලින් මන් දන්න reverse engineering කියන දේ ගැන  ඔයාලට සරල හැදින්වීමක් කලා. සමහර තැන් වල මගෙ වචන වැරදි ඇති වචන වලින් අදහස් කරන් දේත් වැරදි වන්න පුලුවන් එහෙම තැනක් තියනවනම් ඒ වැරදි නිවරදි කරන මෙන් ඔයාලගෙන් ඉල්ලා සිටිනවා , ඊලග පෝස්ට් එකෙන් සරල මෘදුකාන්ගයක් Reverse කරන විදිහ ගැන කියල දෙන්නම් , දිගටම අප සමග රැදී සිටින්න

කරුනාකර කතු අයිතිය සුරකින්න
(.net) Reverse Engineering #1 හැදින්වීම (.net) Reverse Engineering #1 හැදින්වීම Reviewed by vihan on 1:48:00 PM Rating: 5

4 comments:

Comments

Powered by Blogger.