คำถามติดแท็ก obfuscation

Obfuscation คือกระบวนการที่โค้ดถูกเปลี่ยนแปลงเพื่อให้นักพัฒนาพบว่ามันยากกว่ามากที่จะเข้าใจอย่างชัดเจนว่าโปรแกรมที่ตั้งใจทำคืออะไรหรือทำงานอย่างไร ยิ่งโปรแกรมมีขนาดใหญ่ความสับสนก็จะยิ่งมากขึ้นเนื่องจากโค้ดจะเชื่อมโยงส่วนต่างๆเข้าด้วยกันผ่านโปรแกรม

4
Obfuscated C Code Contest 2006 โปรดอธิบาย sykes2.c
โปรแกรม C นี้ทำงานอย่างไร main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);} มันรวบรวมตามที่มันเป็น (ทดสอบบนgcc 4.6.3) มันพิมพ์เวลาเมื่อรวบรวม ในระบบของฉัน: !! !!!!!! !! !!!!!! !! !!!!!! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!!!!! !! !! !! !! !! !!!!!! !! !! !! !! !! !! !! !! !! !! !! …

24
ฉันจะทำให้ JavaScript ยุ่งเหยิง (ป้องกัน) ได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการสร้างแอปพลิเคชัน JavaScript ที่ไม่ใช่โอเพ่นซอร์สดังนั้นฉันต้องการเรียนรู้วิธีทำให้โค้ด JS ของฉันงงงวย? เป็นไปได้ไหม

28
ฉันจะป้องกันโค้ด Python ได้อย่างไร
ฉันกำลังพัฒนาซอฟต์แวร์บางส่วนใน Python ที่จะแจกจ่ายให้กับลูกค้าของนายจ้างของฉัน นายจ้างของฉันต้องการ จำกัด การใช้ซอฟต์แวร์ด้วยไฟล์ลิขสิทธิ์แบบ จำกัด เวลา หากเราแจกจ่ายไฟล์. py หรือไฟล์. pyc มันจะง่ายต่อการถอด (ถอดรหัสและ) ลบรหัสที่ตรวจสอบไฟล์ลิขสิทธิ์ อีกแง่มุมหนึ่งก็คือนายจ้างของฉันไม่ต้องการให้ลูกค้าอ่านรหัสของเราเพราะกลัวว่ารหัสอาจถูกขโมยหรืออย่างน้อยก็เป็น "แนวคิดใหม่ ๆ " มีวิธีที่ดีในการจัดการปัญหานี้หรือไม่? ควรใช้โซลูชันที่ไม่ได้วางจำหน่าย ซอฟต์แวร์จะทำงานบนระบบ Linux (ดังนั้นฉันไม่คิดว่า py2exe จะทำเคล็ดลับ)

30
ปกป้อง. รหัส NET จากวิศวกรรมย้อนกลับ?
การทำให้งงงวยเป็นวิธีหนึ่ง แต่ก็ไม่สามารถป้องกันจากการทำลายการรักษาความปลอดภัยการป้องกันการละเมิดลิขสิทธิ์ของแอปพลิเคชัน ฉันจะแน่ใจได้อย่างไรว่าแอปพลิเคชันไม่ได้ถูกดัดแปลงและฉันจะแน่ใจได้อย่างไรว่ากลไกการลงทะเบียนไม่สามารถทำการวิศวกรรมย้อนกลับได้? นอกจากนี้ยังเป็นไปได้ที่จะแปลงแอปพลิเคชัน C # เป็นโค้ดเนมและXenocodeมีราคาแพงเกินไป C # มีคุณสมบัติมากมายและเป็นภาษาที่เหมาะสำหรับรหัสของฉันดังนั้นการเขียน codebase ทั้งหมดอีกครั้งใน C ++ ไม่เป็นไปตามคำถาม ใบรับรองความปลอดภัยสามารถลบออกได้อย่างง่ายดายจากชุดประกอบที่ลงนามใน. NET

17
ข้อมูลสองทางที่ไม่ปลอดภัยง่าย“ ทำให้งงงวย” หรือไม่?
ฉันกำลังมองหาฟังก์ชั่น obfuscation ที่ง่ายมาก (เช่นเข้ารหัสและถอดรหัส แต่ไม่จำเป็นต้องปลอดภัย) สำหรับข้อมูลบางอย่าง มันไม่ใช่ภารกิจที่สำคัญ ฉันต้องการบางสิ่งบางอย่างในการรักษาคนที่ซื่อสัตย์ แต่สิ่งที่แข็งแกร่งกว่าROT13หรือBase64เล็กน้อย ฉันต้องการบางสิ่งที่รวมอยู่ใน. NET Framework 2.0 แล้วดังนั้นฉันไม่ต้องกังวลกับการพึ่งพาภายนอกใด ๆ ฉันไม่ต้องการยุ่งกับกุญแจสาธารณะ / ส่วนตัว ฯลฯ ฉันไม่รู้เกี่ยวกับการเข้ารหัส แต่ฉันรู้พอที่จะรู้ว่าสิ่งที่ฉันเขียนจะน้อยกว่าไร้ค่า ... อันที่จริงแล้ว ฉันอาจทำให้คณิตศาสตร์ผิดพลาดและทำให้แตกได้เล็กน้อย
426 c#  obfuscation 

6
นิยามแปลก ๆ ของมาโคร TRUE และ FALSE
ฉันได้เห็นคำจำกัดความของแมโครดังต่อไปนี้ในหนังสือการเข้ารหัส #define TRUE '/'/'/' #define FALSE '-'-'-' ไม่มีคำอธิบายที่นั่น กรุณาอธิบายให้ฉันวิธีการเหล่านี้จะทำงานเป็นและTRUEFALSE
300 c++  c  macros  boolean  obfuscation 

3
ตัวดำเนินการ >>> = ใน C คืออะไร
ได้รับจากเพื่อนร่วมงานเป็นตัวต่อฉันไม่สามารถเข้าใจได้ว่าโปรแกรม C นี้รวบรวมและใช้งานได้อย่างไร >>>=ตัวดำเนินการนี้และ1P1ตัวอักษรแปลกคืออะไร ฉันได้ทำการทดสอบใน Clang และ GCC แล้ว ไม่มีคำเตือนและผลลัพธ์คือ "???" #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] ) printf("?"); return 0; }

10
มีรหัส obfuscator สำหรับ PHP หรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา มีใครใช้ obfuscator ที่ดีสำหรับ PHP? ฉันได้ลองแล้ว แต่พวกเขาไม่ทำงานสำหรับโครงการที่ใหญ่มาก พวกเขาไม่สามารถจัดการตัวแปรที่รวมอยู่ในไฟล์เดียวและใช้ในไฟล์อื่นตัวอย่างเช่น หรือคุณมีเทคนิคอื่น ๆ ในการหยุดยั้งการแพร่กระจายของรหัสของคุณ?
212 php  obfuscation 

4
เหตุใดไดรเวอร์ MongoDB Java จึงใช้ตัวสร้างตัวเลขแบบสุ่มในเงื่อนไข
ฉันเห็นโค้ดต่อไปนี้ในคอมมิชชันนี้สำหรับไดรเวอร์ Java Connection ของ MongoDBและในตอนแรกมันจะเป็นเรื่องตลกสำหรับบางประเภท รหัสต่อไปนี้ทำอะไร? if (!((_ok) ? true : (Math.random() > 0.1))) { return res; } (แก้ไข: รหัสได้รับการปรับปรุงตั้งแต่โพสต์คำถามนี้)

24
ปกป้องปฏิบัติการจากวิศวกรรมย้อนกลับ?
ฉันได้ไตร่ตรองวิธีการป้องกันรหัส C / C ++ ของฉันจากการถอดและวิศวกรรมย้อนกลับ ปกติฉันจะไม่เอาผิดพฤติกรรมนี้ในรหัสของฉัน อย่างไรก็ตามโปรโตคอลปัจจุบันที่ฉันทำงานอยู่นั้นจะต้องไม่ถูกตรวจสอบหรือเข้าใจได้เพื่อความปลอดภัยของผู้คนต่าง ๆ ตอนนี้นี่เป็นเรื่องใหม่สำหรับฉันและอินเทอร์เน็ตไม่ได้มีความเชี่ยวชาญในการป้องกันการย้อนกลับของวิศวกรรมแต่แสดงให้เห็นถึงข้อมูลมากมายเกี่ยวกับวิธีการย้อนกลับวิศวกร บางสิ่งที่ฉันคิดว่าจนถึงตอนนี้คือ: การฉีดโค้ด (การเรียกใช้ฟังก์ชันดัมมี่ก่อนและหลังการเรียกใช้ฟังก์ชันจริง) รหัส obfustication (mangles ถอดแยกชิ้นส่วนของไบนารี) เขียนกิจวัตรการเริ่มต้นของตัวเอง (ยากกว่าสำหรับผู้ debuggers ที่จะผูกไว้) void startup(); int _start() { startup( ); exit (0) } void startup() { /* code here */ } ตรวจสอบ Runtime สำหรับ debuggers (และบังคับให้ออกหากตรวจพบ) ฟังก์ชั่นแทมโพลีน void trampoline(void (*fnptr)(), bool ping …
210 c++  c  obfuscation  assembly 

2
รหัสนี้สร้างแผนที่ของอินเดียได้อย่างไร
รหัสนี้พิมพ์แผนที่ของอินเดีย มันทำงานยังไง? #include <stdio.h> main() { int a,b,c; int count = 1; for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\ TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\ NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\ HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\ T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\ Hq!WFs XDt!" [b+++21]; ) for(; a-- > 64 ; ) putchar ( ++c=='Z' ? c = c/ 9:33^b&1); …
169 c  obfuscation 

30
เครื่องมือ / กลยุทธ์. ทำให้งงงวย NET [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ผลิตภัณฑ์ของฉันมีองค์ประกอบหลายอย่าง: ASP.NET, Windows Forms App และ Windows Service รหัส 95% หรือมากกว่านั้นถูกเขียนใน VB.NET ด้วยเหตุผลด้านทรัพย์สินทางปัญญาฉันต้องทำให้งงงวยรหัสและจนถึงตอนนี้ฉันได้ใช้ dotfuscator รุ่นที่อายุ 5 ปีขึ้นไป ฉันคิดว่ามันเป็นเวลาที่จะย้ายไปที่เครื่องมือรุ่นใหม่ สิ่งที่ฉันกำลังมองหาคือรายการข้อกำหนดที่ฉันควรพิจารณาเมื่อค้นหา obfuscator ใหม่ สิ่งที่ฉันรู้ว่าฉันควรมองหาจนถึง: อันดับ / De-อนุกรม ในโซลูชันปัจจุบันของฉันฉันเพียงแค่บอกเครื่องมือไม่ให้สมาชิกคลาสข้อมูลใด ๆ ยุ่งเพราะความเจ็บปวดที่ไม่สามารถโหลดข้อมูลซึ่งต่อเนื่องกันก่อนหน้านี้มีขนาดใหญ่เกินไป บูรณาการกับกระบวนการสร้าง การทำงานกับ ASP.NET ในอดีตฉันได้พบปัญหานี้เนื่องจากการเปลี่ยนชื่อ. dll (คุณมักจะมีหนึ่งต่อหน้า) ซึ่งเครื่องมือไม่ได้ทั้งหมดจัดการได้ดี

7
สตริงบิวด์อินของ JavaScript คืออะไร
คำถามนี้ยากที่จะสรุปในชื่อคำถาม อัปเดต ฉันสร้าง JSFiddle ที่สร้างสตริงที่ยุ่งเหยิงจากอินพุตของคุณตามตัวอักษรที่ดึงมาจากคำถามนี้: คุณสามารถเข้าถึงได้ที่นี่หรือส่วนสำคัญจะง่ายขึ้นหรือไม่ ฉันเพิ่งเจอจาวาสคริปต์ที่สับสนในโปรไฟล์นี้ซึ่งมีลักษณะดังนี้: javascript:[[]+1/!1][1^1][1>>1]+({}+[])[1<<1^11>>1]+([]+!!- [])[1<<1]+[/~/+{}][+!1][-~1<<1]+([]+/-/[(!!1+[])[1>>1]+(!!1 +[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^11<<1]+([,][ ~1]+[])[1-~1]+[[]+{}][!1.1%1][11111.1%11.1*111e11|!1]+(/1/+ 1/[1<1][1%1])[1^11]+[[],[]+{}][1][+1]+(/<</[1]+[])[1/1.1&1] ขออภัยที่ทำลายความประหลาดใจ แต่เมื่อได้รับการประเมินแล้วจะส่งคืนสิ่งนี้: "I love you" in Chrome "I lone you" In Firefox "I lo[e you" in IE10 วิธีการทำงานเมื่อแตกออกคือการสร้างชุดของข้อความและดึงตัวอักษรออกมาเช่น (ใช้ตัวอย่าง "I"): []+1/!1 returns "Infinity" then [[]+1/!1] creates this array: ["Infinity"] then [[]+1/!1][1^1] Takes the first (1^1 == 0) element …

28
วิธีที่ดีที่สุดในการทำให้ยุ่งเหยิงที่อยู่อีเมลในเว็บไซต์หรือไม่
ฉันใช้เวลาสองสามวันในการปรับปรุงเว็บไซต์ส่วนตัวของฉัน URL ของเว็บไซต์ส่วนตัวของฉันคือ (ชื่อจริงของฉัน) (นามสกุลของฉัน) .com เนื่องจากนามสกุลของฉันค่อนข้างแปลกและฉันโชคดีพอที่จะรับชื่อโดเมน ที่อยู่อีเมลของฉันคือ (ชื่อจริง) @ (นามสกุลของฉัน) .com ดังนั้นเมื่อมีการคาดเดามันก็ไม่ยาก อย่างไรก็ตามฉันต้องการรวม mailto: ลิงก์เข้ากับเว็บไซต์ของฉันเพื่อให้ผู้คนสามารถติดต่อฉันได้ และแม้ว่าที่อยู่อีเมลของฉันจะไม่คาดเดาได้ยาก แต่ฉันก็ไม่ได้เก็บข้อมูลจากสแปมบอทที่รวบรวมข้อมูลเว็บไซต์สำหรับรูปแบบที่อยู่อีเมลและเพิ่มไปยังฐานข้อมูลของพวกเขา วิธีที่ดีที่สุดสำหรับฉันที่ทำให้งงงวยที่อยู่อีเมลของฉันโดยเฉพาะอย่างยิ่งในรูปแบบการเชื่อมโยงคืออะไร? วิธีการที่ฉันรู้คือ: <a href="mailto:x@y.com">e-mail me</a> ใช้งานได้ แต่ก็หมายความว่าทันทีที่เว็บไซต์ของฉันเข้าสู่ Google ฉันจะส่งสแปมโดยที่บอทสแปมเลือกที่อยู่อีเมลของฉันได้อย่างง่ายดาย <img src="images/e-mail.png" /> สิ่งนี้เป็นที่พึงปรารถนาน้อยกว่าเพราะไม่เพียง แต่ผู้เข้าชมจะไม่สามารถคลิกเพื่อส่งอีเมลถึงฉันได้ แต่บอทสแปมที่ชาญฉลาดกว่าอาจสามารถตรวจจับตัวอักษรที่เป็นรูปภาพได้ ฉันรู้ว่าอาจไม่มีวิธีที่สมบูรณ์แบบ แต่ฉันแค่สงสัยว่าทุกคนคิดว่าอะไรดีที่สุด ฉันยินดีที่จะใช้ JavaScript หากจำเป็นเนื่องจากเว็บไซต์ของฉันใช้ประโยชน์ได้มากมาย

7
แปลงสคริปต์ PHP เป็นหน้าต่างแบบสแตนด์อโลน
ฉันต้องการทำให้งานง่ายขึ้นโดยอัตโนมัติ สำหรับเรื่องนี้ฉันได้เขียนสคริปต์ PHP ขนาดเล็กที่ฉันเรียกใช้จากบรรทัดคำสั่งโดยใช้ PHP-CLI ตอนนี้ฉันต้องการมอบสคริปต์นี้ให้ใครบางคน แต่ฉันไม่ต้องการ: แจกซอร์สโค้ด ขอให้เขาติดตั้ง PHP บนระบบ มีวิธีการสร้างสคริปต์ PHP รุ่น. exe หรือไม่ ฉันไม่ค่อยกังวลเกี่ยวกับการรวบรวม ฉันกังวลมากขึ้นเกี่ยวกับการขอให้ผู้คนติดตั้งและกำหนดค่า PHP
128 php  obfuscation 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.