[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"project-17478034":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":5,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":43,"post_text":44,"what":45,"said":82,"maker_in_thread":169,"shape":176,"grid":180,"attempts":266,"same_week":267,"maker_shows":41,"maker_hidden":297,"reader_version":298,"card":299},"17478034","picheta.me","Online C\u002FC++ obfuscator","title","Show HN: Online C\u002FC++ obfuscator","https:\u002F\u002Fpicheta.me\u002Fobfuscator","dom96",1530962350,2018,44,34,840,2155,39,"shown","dev_tools","code obfuscator","web_app",[23,24,25,26],"c obfuscator","c++ obfuscation","source code obfuscation","clang","roasted",-0.417,{"positive":30,"neutral":31,"mixed":32,"critical":33},1,5,0,10,16,{"idea":36,"privacy":38,"execution":40,"design":42},{"positive":32,"critical":37},3,{"positive":32,"critical":39},2,{"positive":32,"critical":41},4,{"positive":32,"critical":30},[30,32,32,32,32,30,32,32,30,32,30,32,30,32,37,30,32,32,32,32,37,37,30,32,30,32,37,32,31,30,32,37,30,32],null,{"problem":46,"audience":57,"pricing":44,"motivation":62,"time_to_build":44,"stack":69,"openness":79,"stage":80,"team_size":81},{"value":47,"source":48,"evidence":49},"Obfuscating C\u002FC++ source code so it is harder to read","maker",[50,53],{"id":51,"by":10,"text":52},"17478701","Nice to see this getting some traction. To give a bit more context: this is a C\u002FC++ obfuscator I have built for my BSc Computer Science dissertation. It's built on the clang…",{"id":54,"by":55,"text":56},"17478448","gravypod","I'm assuming similar use cases to things like Proguard. If you need to provide your client with C code because they need to compile for a large range of architectures but they're…",{"value":58,"source":59,"evidence":60},"Developers who must ship C\u002FC++ code without exposing source","commenter",[61],{"id":54,"by":55,"text":56},{"value":63,"source":48,"evidence":64},"Built as a BSc dissertation; maker is deciding whether to open source or sell it",[65,66],{"id":51,"by":10,"text":52},{"id":67,"by":10,"text":68},"17478662","I agree completely. I'm warmly impressed that this is getting attention on HN. To give a bit more context: I wrote this obfuscator for my BSc dissertation and created a web…",[70,75],{"value":71,"source":72,"evidence":73},"C++","inferred",[74],{"id":51,"by":10,"text":52},{"value":76,"source":48,"evidence":77},"clang parser",[78],{"id":51,"by":10,"text":52},"unknown","launched","solo",{"praise":83,"objections":98,"requests":125,"questions":138,"alternatives":151},[84,91],{"value":85,"source":59,"evidence":86},"Academically impressive and a nice idea",[87],{"id":88,"by":89,"text":90},"17478537","throwaway2016a","Academically, kudos! This seems cool and a nice idea but... Speaking practically this strikes me as one of \"this shouldn't be an online tool\" things. It sends the source code to…",{"value":92,"source":59,"evidence":93},"Fun to play with for a C newbie",[94],{"id":95,"by":96,"text":97},"17478685","Waterluvian","Thanks for sharing this. I'm a C newbie so it was neat to play with. Don't stop making and sharing neat stuff!",[99,106,110],{"value":100,"source":59,"evidence":101},"Obfuscating C source does not stop decompilation of compiled code",[102],{"id":103,"by":104,"text":105},"17478621","GlitchMr","I'm not entirely sure what is this for. This won't stop decompilation because it doesn't affect compiled code - constant folding is part of C language, \"\\x0A\" is the same thing…",{"value":107,"source":59,"evidence":108},"Sending source to a server is risky for code meant to be secret",[109],{"id":88,"by":89,"text":90},{"value":111,"source":59,"evidence":112},"Renames externally visible identifiers and fails on C++ features like templates and lambdas",[113,117,121],{"id":114,"by":115,"text":116},"17479223","slrz","As far as I can tell, the \"rename identifiers\" feature also renames externally-visible identifers, which should remain the same if the code ought to keep working.",{"id":118,"by":119,"text":120},"17479619","dymk","No template support? template \u003Ctypename T> T add(T a, T b) { return a + b; } Is there a list of C++ features it supports?",{"id":122,"by":123,"text":124},"17478925","Gladdyu","It doesn't seem very keen on handling lambdas in C++ mode: #include \u003Cstdio.h> int main() { return [](){return 5;}(); } Results in unhandled exceptions.",[126,131],{"value":127,"source":59,"evidence":128},"Support for C++ features such as templates and lambdas",[129,130],{"id":118,"by":119,"text":120},{"id":122,"by":123,"text":124},{"value":132,"source":59,"evidence":133},"A CLI version for whole projects",[134],{"id":135,"by":136,"text":137},"17478492","jeremyjh","Wouldn't you use a tool to do that automatically in your build process? I can't see using a web page to obfuscate an entire project, one file at a time.",[139,147],{"value":140,"source":59,"evidence":141},"What is the use case for obfuscating C code",[142,146],{"id":143,"by":144,"text":145},"17478398","tobyhinloopen","What’s the use of something like this",{"id":103,"by":104,"text":105},{"value":148,"source":48,"evidence":149},"Is there a market for this product",[150],{"id":67,"by":10,"text":68},[152,158,165],{"value":153,"source":48,"evidence":154},"Tigress obfuscator",[155],{"id":156,"by":10,"text":157},"17478758","Indeed, the current transformations implemented by my obfuscator aren't particularly sophisticated, at least in comparison to some of the obfuscator's I evaluated such as…",{"value":159,"source":59,"evidence":160},"Microsoft Warbird obfuscation",[161],{"id":162,"by":163,"text":164},"17478678","beefhash","People have been looking into Microsoft's Warbird obfuscation[1] and it looks pretty impressive. [1] https:\u002F\u002Fgithub.com\u002Fairbus-seclab\u002Fwarbirdvm",{"value":166,"source":59,"evidence":167},"Proguard",[168],{"id":54,"by":55,"text":56},{"comments":33,"answered":37,"key":170},[171,172,173],{"id":156,"text":157},{"id":51,"text":52},{"id":174,"text":175},"17479387","Very true. I'm running it on a droplet that doesn't have anything else important on it, but I'll get the obfuscator dockerized anyway just in case. Edit: It is done :)",{"commenters":177,"max_depth":31,"maker_replies":33,"first_comment_mins":178,"lifespan_hours":179},21,127,76,[181,183,185,188,190,192,195,199,200,204,206,208,211,213,215,218,219,220,223,227,230,233,234,236,239,242,245,247,250,253,254,256,260,264],[103,32,30,182,104,32],"project\u002Fcritical\u002Fidea",[162,32,32,184,163,32],"other\u002Fneutral\u002Fnone",[186,32,32,184,187,32],"17479616","userbinator",[189,32,32,184,163,32],"17499098",[156,32,32,191,10,30],"maker\u002Fneutral\u002Fidea",[193,32,30,182,194,32],"17479050","konstmonst",[196,32,32,197,198,32],"17483344","commenter\u002Fneutral\u002Fnone","askz",[51,30,32,191,10,30],[201,39,30,202,203,32],"17479195","project\u002Fcritical\u002Fprivacy","nitros",[174,39,32,205,10,30],"maker\u002Fneutral\u002Fprivacy",[114,37,30,207,115,32],"project\u002Fcritical\u002Fexecution",[209,37,32,210,10,30],"17479389","maker\u002Fneutral\u002Fexecution",[212,37,30,207,115,32],"17479576",[214,37,32,210,10,30],"17479687",[216,37,37,217,115,32],"17479730","project\u002Fneutral\u002Fexecution",[88,41,30,202,89,32],[67,41,32,191,10,30],[221,31,32,184,222,32],"17478494","mpweiher",[224,225,32,184,226,32],"17479438",6,"DoofusOfDeath",[228,225,32,184,229,32],"17479812","ohiovr",[143,231,37,232,144,32],7,"project\u002Fneutral\u002Fidea",[54,231,37,232,55,32],[135,231,30,235,136,32],"project\u002Fcritical\u002Fdesign",[237,231,32,238,10,30],"17478640","maker\u002Fneutral\u002Fdesign",[240,231,30,182,241,32],"17479278","gruez",[243,231,32,244,55,32],"17479320","commenter\u002Fneutral\u002Fidea",[118,246,37,217,119,32],8,[248,246,32,249,10,30],"17479698","maker\u002Fneutral\u002Fdocs",[95,251,31,252,96,32],9,"maker\u002Fpositive\u002Fnone",[122,33,30,207,123,32],[255,33,32,210,10,30],"17479010",[257,258,37,232,259,32],"17479781",11,"firic",[261,262,30,207,263,32],"17480244",12,"entelechy0",[265,262,32,210,10,30],"17482997",[],[268,272,277,282,287,292],{"id":269,"name":270,"points":271,"category":19},"17487552","Browsh",967,{"id":273,"name":274,"points":275,"category":276},"17470037","Hacker News job trends",371,"data",{"id":278,"name":279,"points":280,"category":281},"17509601","Solving Rush Hour",223,"games",{"id":283,"name":284,"points":285,"category":286},"17506753","Markdown New Tab",218,"productivity",{"id":288,"name":289,"points":290,"category":291},"17505559","Oathkeeper",174,"infrastructure",{"id":293,"name":294,"points":295,"category":296},"17508151","Online challenge",143,"learning_science",false,"v2",{"id":300,"name":5,"line":6,"ai":297,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":301,"top":17,"kw":302,"maker":10,"domain":5,"tier":18,"attempts":32,"strip":303,"url":9,"mix":304,"praise":85,"objection":100,"sub":20},17478034,-0.42,[23,24,25,26],"1000010010101031000033101030510310",[30,31,32,33],1794036567570]