73
\$\begingroup\$

A repost of this challenge. Meta discussion. Sandbox post. Body of the question similar to the original

Robber's challenge

This cops and robbers is now (08/03/2018) closed to further competing cop entries, as robbers may no longer be competing to crack answers, but feel free to post new answers.

The Cops challenge was won by Dennis with his brilliant 6 byte Sesos answer

The Robbers challenge was won by totallyhuman, with an astounding 30 cracks!

The Cops' Challenge

To compete as a cop:

  1. Choose a programming language. A valid programming language is one which meets all three of these criteria:

  2. Write a full program that outputs the numbers from 1 to 100, inclusive, in ascending order. You can output as decimal integers, as bytecode values (! to represent 33, for instance), or as unary digits (1111 for 4, e.g)1. If using unary, you should use any consistent character for digits, and a different, consistent character as a delimiter. If using integers, you should output with a constant non-digit delimiter between each number. You may also output with leading and trailing characters (such as []) but please be sensible (don't output a thousand bytes of rubbish either side of the count for instance). You must specify your output format in your answer.

    You must not assume a REPL environment or existing boilerplate code. Flags may be used, but you must reveal what flags are used in your answer. The program must be in the form of one or more source files (to rule out quirky languages like Folders) and must fit into your answer in full (so it must not be longer than 65,536 characters) - this shouldn't be an issue for any serious submission.

    If your code contains bytes outside of printable ASCII + newline, please include a hex dump to make sure your code is actually testable.

    The program must terminate within 5 minutes on a typical desktop PC.

That's it. However, as with everything, there is a catch. You should aim to obfuscate your program as much as possible, as the Robbers' task is to guess the language you used. You should also aim to make sure that your program only works in the intended language (although this is likely to be less of a problem than the Foo cracks in the original challenge). The output format must be the same as your intended solution in order to constitute a valid crack.

Once 7 days have passed without anyone discovering any language where your program is a valid crack, you may reveal the language and mark it as safe. Please note, your submission can still be cracked until you reveal the language.

You must not under any circumstances edit the source code of your submission once posted (as this may invalidate a robber's active attempts at cracking your answer). So make sure that you golf it as well as you can (or dare) before posting. If you realise that your answer does not work after posting it, simply delete your answer and post a fixed version if you want to.

The shortest safe submission in bytes wins!

1: If you wish to output in a different way, please ask in the comments

The Stack Snippet

You can use this stack snippet to browse the answers more easily:

answersSafe=[];answersCracked=[];answersUncracked=[];answerPage=1;robberTodo=[];userNames={};robberMap={};robberStats={};robberTimes={};function template($element,data){var $clone=$element.clone().removeClass('template');var html=$clone.html();for(var key in data){html=html.replace('{'+key+'}',data[key])}$clone.html(html);$element.after($clone)}function hideEmpty(){$('tbody').each(function(){if($(this).find('tr:not(.template):has(td)').length==0){$(this).find('tr:not(.empty):has(th)').addClass('inactive');$(this).find('tr.empty').removeClass('inactive')}})}function formatError(obj,reason){template($('.warn.template'),{id:obj.cop_id,cop:obj.cop_user,reason:reason})}function showAnswers(category,selector,sorter){sorter(category);$('#'+selector).find('tr:not(.template):has(td)').remove();$.each(category,function(i,answer){template($('#'+selector+' .template'),answer)});$('code:has(br)').addClass('clickable').click(function(){$(this).toggleClass('full')});updateCountdowns()}function getAnswers(){$.ajax({url:"https://api.stackexchange.com/2.2/questions/155018/answers?pagesize=100&order=desc&sort=creation&site=codegolf&filter=!*LUzJZNOIUpZsWsZBLe&page="+(answerPage++),method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,answer){var obj={cop_id:answer.answer_id,cop_user:answer.owner.display_name,cop_time:answer.creation_date,safe_on:answer.creation_date+604800};var $e=$('<div/>').html(answer.body);var $headers=$e.find(':header');if($headers.length==0){return formatError(obj,"no header")}var header=$headers.first().html();var $code=$e.find('pre code');if($code.length==0){return formatError(obj,"no code")}obj.code=$code.first().html().replace(/\n/g,'<br/>');if(obj.code.endsWith('<br/>')){obj.code=obj.code.slice(0,-5)}var bm=/(\d+)\s+bytes/.exec(header);if(bm==null){return formatError(obj,"no bytecount")}obj.size=parseInt(bm[1]);if(obj.size==NaN){return formatError(obj,"bytecount is NaN: "+bm[1])}obj.language=header.slice(0,bm.index).trim();while(obj.language.charAt(obj.language.length-1)!=','&&obj.language.length!=0){obj.language=obj.language.slice(0,-1)}if(obj.language.length==0){return formatError(obj,"no/bad separator before bytecount")}obj.language=obj.language.slice(0,-1).trim();obj.language_text=$('<div/>').html(obj.language).text();var end=header.slice(bm.index+bm[0].length).trim();if(end.length==0){if(obj.language!=="???"){return formatError(obj,"not marked as safe nor cracked, but language is "+obj.language+" (expected ???)")}return answersUncracked.push(obj)}if(!end.startsWith(',')){return formatError(obj,"no/bad separator after bytecount")}end=end.slice(1).trim();if(end==='safe'){return answersSafe.push(obj)}var $end=$('<div/>').html(end);var end_text=$end.text();if(!end_text.startsWith('cracked')){return formatError(obj,"expected 'cracked' or 'safe', got '"+end_text+"'")}var expectedURL='https://codegolf.stackexchange.com/a/';var $links=$end.find('a');if($links.length==0){return formatError(obj,"no cracked link")}var robberURL=$links.first().attr('href');if(!robberURL.startsWith(expectedURL)){return formatError(obj,"link does not start with "+expectedURL+": "+robberURL)}obj.robber_id=parseInt(robberURL.slice(expectedURL.length));if(obj.robber_id==NaN){return formatError(obj,"robber_id is NaN")}robberTodo.push(obj.robber_id);answersCracked.push(obj)});if(data.has_more){getAnswers()}else{getRobbers()}})}function sortBySize(category){category.sort(function(a,b){return b.size-a.size})}function sortByTime(category){category.sort(function(a,b){return b.cop_time-a.cop_time})}function sortByLiveTime(category){category.sort(function(a,b){return b.cracked_after-a.cracked_after})}function sortByCop(category){category.sort(function(a,b){return b.cop_user.localeCompare(a.cop_user)})}function sortByRobber(category){category.sort(function(a,b){return b.robber_user.localeCompare(a.robber_user)})}function sortByLanguage(category){category.sort(function(a,b){return b.language_text.localeCompare(a.language_text)})}function getRobbers(){if(robberTodo.length==0){$.each(answersCracked,function(i,answer){answer.robber_user=userNames[robberMap[answer.robber_id]];answer.cracked_after=robberTimes[answer.robber_id]-answer.cop_time;answer.cracked_after_str=formatTime(answer.cracked_after)});showAnswers(answersUncracked,'uncracked',sortByTime);showAnswers(answersCracked,'cracked',sortByLiveTime);showAnswers(answersSafe,'safe',sortBySize);hideEmpty();var graphData=[];$.each(robberStats,function(k,v){graphData.push({name:decodeEntities(userNames[k]),value:v})});graphData.sort(function(a,b){if(a.value==b.value){return a.name.localeCompare(b.name)}else{return b.value-a.value}});var graphLabels=[];var graphValues=[];$.each(graphData,function(i,obj){graphLabels.push(obj.name);graphValues.push(obj.value)});var graphColors=[];for(var i=0;i<graphData.length;i+=1){graphColors.push(['#b58900','#cb4b16','#dc322f','#d33682','#6c71c4','#268bd2','#2aa198','#859900'][i%8])}$('#robber-stats').attr('width',600);$('#robber-stats').attr('height',24*graphData.length+66);$('#answer-stats').attr('width',600);$('#answer-stats').attr('height',400);Chart.defaults.global.defaultFontColor='#839496';new Chart($('#robber-stats'),{type:'horizontalBar',data:{labels:graphLabels,datasets:[{data:graphValues,backgroundColor:graphColors}]},options:{responsive:false,legend:false,tooltips:false,layout:{padding:{right:40}},title:{display:true,text:'Number of answers cracked per robber',fontSize:18},scales:{yAxes:[{gridLines:{display:false}}],xAxes:[{gridLines:{display:false},ticks:{beginAtZero:true}}]},plugins:{datalabels:{anchor:'end',align:'end'}}}});new Chart($('#answer-stats'),{type:'pie',data:{labels:['Uncracked','Cracked','Safe'],datasets:[{data:[answersUncracked.length,answersCracked.length,answersSafe.length],backgroundColor:['#2aa198','#dc322f','#859900'],borderColor:'#002b36'}]},options:{responsive:false,tooltips:{backgroundColor:'#073642',displayColors:false},title:{display:true,text:'Number of answers in each category',fontSize:18},plugins:{datalabels:false}}});updateCountdowns();setInterval(updateCountdowns,1000);$('#loading').hide()}else{$.ajax({url:"https://api.stackexchange.com/2.2/answers/"+robberTodo.slice(0,100).join(';')+"?site=codegolf&filter=!*RB.h_b*K*dQTllFUdy",method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,robber){robberTodo=robberTodo.filter(function(e){return e!==robber.answer_id});robberMap[robber.answer_id]=robber.owner.user_id;robberTimes[robber.answer_id]=robber.creation_date;userNames[robber.owner.user_id]=robber.owner.display_name;if(robber.owner.user_id in robberStats){robberStats[robber.owner.user_id]+=1}else{robberStats[robber.owner.user_id]=1}});getRobbers()})}}var decodeEntities=(function(){var element=document.createElement('div');function decodeHTMLEntities(str){if(str&&typeof str==='string'){str=str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi,'');str=str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi,'');element.innerHTML=str;str=element.textContent;element.textContent=''}return str}return decodeHTMLEntities})();function formatTime(seconds){var arr=[];if(seconds>86400){arr.push(Math.floor(seconds/86400)+" days");seconds%=86400}if(seconds>3600){arr.push(Math.floor(seconds/3600)+" hours");seconds%=3600}if(seconds>60){arr.push(Math.floor(seconds/60)+" minutes");seconds%=60}if(seconds!=0){arr.push(seconds+" seconds")}return arr.join(', ').split('').reverse().join('').replace(',','dna ').split('').reverse().join('')}function updateCountdowns(){$('tr:not(.template) .countdown').each(function(){var target=$(this).attr('data-target');var now=Math.floor(+new Date()/1000);if(target-now<86400){$(this).addClass('urgent')}else{$(this).removeClass('urgent')}if(target<now){$(this).removeClass('countdown').text('Safe! (according to your computer\'s time)')}else{$(this).text(formatTime(target-now))}})}$('thead, #stats-header').click(function(){$(this).toggleClass('hidden')});getAnswers();
*{margin:0;padding:0;font:12pt sans-serif;}html,body{background:#002b36;color:#839496;width:100%;height:100%;}body>:not(.i):not(#loading){margin:5px;}#loading{background:rgb(64,64,64,0.8);position:fixed;top:0;left:0;width:100%;height:100%;display:table;z-index:100;}#loading-wrapper{display:table-cell;vertical-align:middle;text-align:center;font-size:20pt;color:#ddd;}#fullpage-msg,.warn{padding:5px 5px 5px 5px;margin:10px 0px;}@media (min-width:800px){#fullpage-msg{display:none;}}a{color:#268bd2;}code{font-family:monospace;font-size:16px;background:#073642;padding:1px 5px;white-space:pre;position:relative;}.clickable{cursor:pointer;}code:not(.full){max-height:38px;overflow:hidden;}code.clickable:not(.full):before{content:'';background:linear-gradient(transparent 20px,rgba(7,54,66,0.8) 32px,#002b36);position:absolute;top:0;left:0;width:100%;height:100%;}td,th{padding:5px;vertical-align:top;white-space:nowrap;text-align:left;}thead th,#stats-header{font-size:20pt;margin:10px 0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer;}th{font-weight:bold;}path{fill:#839496;}thead:not(.hidden) .right-arrow,#stats-header:not(.hidden) .right-arrow,thead.hidden .down-arrow,#stats-header.hidden .down-arrow{visibility:hidden;}.hidden+tbody,.hidden+#stats,.template,.inactive{display:none;}small,code{display:block;}small,small a{font-size:8pt;}#stats-header{font-weight:bold;padding:6px;}.urgent{color:#dc322f;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script><script>!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js"],e):e(t.Chart)}(this,function(t){"use strict";var e=(t=t&&t.hasOwnProperty("default")?t.default:t).helpers,n={toTextLines:function(t){var n,a=[];for(t=[].concat(t);t.length;)"string"==typeof(n=t.pop())?a.unshift.apply(a,n.split("\n")):Array.isArray(n)?t.push.apply(t,n):e.isNullOrUndef(t)||a.unshift(""+n);return a},toFontString:function(t){return!t||e.isNullOrUndef(t.size)||e.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family},textSize:function(t,e,n){var a,r=[].concat(e),i=r.length,o=t.font,l=0;for(t.font=n.string,a=0;a<i;++a)l=Math.max(t.measureText(r[a]).width,l);return t.font=o,{height:i*n.lineHeight,width:l}},parseFont:function(a){var r=t.defaults.global,i=e.valueOrDefault(a.size,r.defaultFontSize),o={family:e.valueOrDefault(a.family,r.defaultFontFamily),lineHeight:e.options.toLineHeight(a.lineHeight,i),size:i,style:e.valueOrDefault(a.style,r.defaultFontStyle),weight:e.valueOrDefault(a.weight,null),string:""};return o.string=n.toFontString(o),o},bound:function(t,e,n){return Math.max(t,Math.min(e,n))}};function a(t,e){var n=e.x,a=e.y;if(null===n)return{x:0,y:-1};if(null===a)return{x:1,y:0};var r=t.x-n,i=t.y-a,o=Math.sqrt(r*r+i*i);return{x:o?r/o:0,y:o?i/o:-1}}function r(t,e,n,a,r){switch(r){case"center":n=a=0;break;case"bottom":n=0,a=1;break;case"right":n=1,a=0;break;case"left":n=-1,a=0;break;case"top":n=0,a=-1;break;case"start":n=-n,a=-a;break;case"end":break;default:r*=Math.PI/180,n=Math.cos(r),a=Math.sin(r)}return{x:t,y:e,vx:n,vy:a}}var i={arc:function(t,e,n){var a,i=(t.startAngle+t.endAngle)/2,o=Math.cos(i),l=Math.sin(i),s=t.innerRadius,d=t.outerRadius;return a="start"===e?s:"end"===e?d:(s+d)/2,r(t.x+o*a,t.y+l*a,o,l,n)},point:function(t,e,n,i){var o=a(t,i),l=t.radius,s=0;return"start"===e?s=-l:"end"===e&&(s=l),r(t.x+o.x*s,t.y+o.y*s,o.x,o.y,n)},rect:function(t,e,n,i){var o=t.horizontal,l=Math.abs(t.base-(o?t.x:t.y)),s=o?Math.min(t.x,t.base):t.x,d=o?t.y:Math.min(t.y,t.base),u=a(t,i);return"center"===e?o?s+=l/2:d+=l/2:"start"!==e||o?"end"===e&&o&&(s+=l):d+=l,r(s,d,u.x,u.y,n)},fallback:function(t,e,n,i){var o=a(t,i);return r(t.x,t.y,o.x,o.y,n)}},o=t.helpers;var l=function(t,e){this._el=t,this._index=e,this._model=null};o.extend(l.prototype,{_modelize:function(e,a,r,l){var s,d=this._index,u=o.options.resolve,f=n.parseFont(u([r.font,{}],l,d));return{align:u([r.align,"center"],l,d),anchor:u([r.anchor,"center"],l,d),backgroundColor:u([r.backgroundColor,null],l,d),borderColor:u([r.borderColor,null],l,d),borderRadius:u([r.borderRadius,0],l,d),borderWidth:u([r.borderWidth,0],l,d),color:u([r.color,t.defaults.global.defaultFontColor],l,d),font:f,lines:a,offset:u([r.offset,0],l,d),opacity:u([r.opacity,1],l,d),origin:function(t){var e=t._model.horizontal,n=t._scale||e&&t._xScale||t._yScale;if(!n)return null;if(void 0!==n.xCenter&&void 0!==n.yCenter)return{x:n.xCenter,y:n.yCenter};var a=n.getBasePixel();return e?{x:a,y:null}:{x:null,y:a}}(this._el),padding:o.options.toPadding(u([r.padding,0],l,d)),positioner:(s=this._el,s instanceof t.elements.Arc?i.arc:s instanceof t.elements.Point?i.point:s instanceof t.elements.Rectangle?i.rect:i.fallback),rotation:u([r.rotation,0],l,d)*(Math.PI/180),size:n.textSize(e,a,f),textAlign:u([r.textAlign,"start"],l,d)}},update:function(t,e,a){var r,i,l,s=null,d=this._index;o.options.resolve([e.display,!0],a,d)&&(r=a.dataset.data[d],i=o.valueOrDefault(o.callback(e.formatter,[r,a]),r),s=(l=o.isNullOrUndef(i)?[]:n.toTextLines(i)).length?this._modelize(t,l,e,a):null),this._model=s},draw:function(t){var e,a,r,i,l,s,d,u,f,h,c,y,g,x,b=this._model;b&&b.opacity&&(r=b.size,i=b.padding,l=r.height,s=r.width,u=-l/2,e={frame:{x:(d=-s/2)-i.left,y:u-i.top,w:s+i.width,h:l+i.height},text:{x:d,y:u,w:s,h:l}},a=function(t,e,n){var a=e.positioner(t._view,e.anchor,e.align,e.origin),r=a.vx,i=a.vy;if(!r&&!i)return{x:a.x,y:a.y};var o=e.borderWidth||0,l=n.w+2*o,s=n.h+2*o,d=e.rotation,u=Math.abs(l/2*Math.cos(d))+Math.abs(s/2*Math.sin(d)),f=Math.abs(l/2*Math.sin(d))+Math.abs(s/2*Math.cos(d)),h=1/Math.max(Math.abs(r),Math.abs(i));return u*=r*h,f*=i*h,u+=e.offset*r,f+=e.offset*i,{x:a.x+u,y:a.y+f}}(this._el,b,e.frame),t.save(),t.globalAlpha=n.bound(0,b.opacity,1),t.translate(Math.round(a.x),Math.round(a.y)),t.rotate(b.rotation),f=t,h=e.frame,y=(c=b).backgroundColor,g=c.borderColor,x=c.borderWidth,(y||g&&x)&&(f.beginPath(),o.canvas.roundedRect(f,Math.round(h.x)-x/2,Math.round(h.y)-x/2,Math.round(h.w)+x,Math.round(h.h)+x,c.borderRadius),f.closePath(),y&&(f.fillStyle=y,f.fill()),g&&x&&(f.strokeStyle=g,f.lineWidth=x,f.lineJoin="miter",f.stroke())),function(t,e,n,a){var r,i,o,l=a.textAlign,s=a.font.lineHeight,d=a.color,u=e.length;if(u&&d)for(r=n.x,i=n.y+s/2,"center"===l?r+=n.w/2:"end"!==l&&"right"!==l||(r+=n.w),t.font=a.font.string,t.fillStyle=d,t.textAlign=l,t.textBaseline="middle",o=0;o<u;++o)t.fillText(e[o],Math.round(r),Math.round(i),Math.round(n.w)),i+=s}(t,b.lines,e.text,b),t.restore())}});var s=t.helpers,d={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",formatter:function(t){if(s.isNullOrUndef(t))return null;var e,n,a,r=t;if(s.isObject(t))if(s.isNullOrUndef(t.label))if(s.isNullOrUndef(t.r))for(r="",a=0,n=(e=Object.keys(t)).length;a<n;++a)r+=(0!==a?", ":"")+e[a]+": "+t[e[a]];else r=t.r;else r=t.label;return""+r}},u=t.helpers,f="$datalabels";t.defaults.global.plugins.datalabels=d,t.plugins.register({id:"datalabels",afterDatasetUpdate:function(t,e,n){var a,r,i,o,s,d=t.data.datasets[e.index],h=(a=n,!1===(r=d.datalabels)?null:(!0===r&&(r={}),u.merge({},[a,r]))),c=e.meta.data||[],y=c.length,g=t.ctx;for(g.save(),i=0;i<y;++i)(o=c[i])&&!o.hidden?(s=new l(o,i)).update(g,h,{chart:t,dataIndex:i,dataset:d,datasetIndex:e.index}):s=null,o[f]=s;g.restore()},afterDatasetDraw:function(t,e){var n,a,r=e.meta.data||[],i=r.length;for(n=0;n<i;++n)(a=r[n][f])&&a.draw(t.ctx)}})});</script><div id="loading"><span id="loading-wrapper">Loading...</span></div><div id="fullpage-msg"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 111.577 111.577"><path d="M78.962,99.536l-1.559,6.373c-4.677,1.846-8.413,3.251-11.195,4.217c-2.785,0.969-6.021,1.451-9.708,1.451c-5.662,0-10.066-1.387-13.207-4.142c-3.141-2.766-4.712-6.271-4.712-10.523c0-1.646,0.114-3.339,0.351-5.064c0.239-1.727,0.619-3.672,1.139-5.846l5.845-20.688c0.52-1.981,0.962-3.858,1.316-5.633c0.359-1.764,0.532-3.387,0.532-4.848c0-2.642-0.547-4.49-1.636-5.529c-1.089-1.036-3.167-1.562-6.252-1.562c-1.511,0-3.064,0.242-4.647,0.71c-1.59,0.47-2.949,0.924-4.09,1.346l1.563-6.378c3.829-1.559,7.489-2.894,10.99-4.002c3.501-1.111,6.809-1.667,9.938-1.667c5.623,0,9.962,1.359,13.009,4.077c3.047,2.72,4.57,6.246,4.57,10.591c0,0.899-0.1,2.483-0.315,4.747c-0.21,2.269-0.601,4.348-1.171,6.239l-5.82,20.605c-0.477,1.655-0.906,3.547-1.279,5.676c-0.385,2.115-0.569,3.731-0.569,4.815c0,2.736,0.61,4.604,1.833,5.597c1.232,0.993,3.354,1.487,6.368,1.487c1.415,0,3.025-0.251,4.814-0.744C76.854,100.348,78.155,99.915,78.962,99.536z M80.438,13.03c0,3.59-1.353,6.656-4.072,9.177c-2.712,2.53-5.98,3.796-9.803,3.796c-3.835,0-7.111-1.266-9.854-3.796c-2.738-2.522-4.11-5.587-4.11-9.177c0-3.583,1.372-6.654,4.11-9.207C59.447,1.274,62.729,0,66.563,0c3.822,0,7.091,1.277,9.803,3.823C79.087,6.376,80.438,9.448,80.438,13.03z"/></svg> Click the "Full page" link in the top right for vastly superior experience</div><div class="warn template">&#9888; <a href="https://codegolf.stackexchange.com/a/{id}">This answer</a> by {cop} is not formatted correctly ({reason}).</div><table><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Uncracked answers</th></tr></thead><tbody id="uncracked"><tr><th colspan="3" onclick="showAnswers(answersUncracked, 'uncracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortByTime)" class="clickable">Safe in</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no uncracked answers</th></tr><tr class="template"><td colspan="3"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{size} bytes</td><td><span class="countdown" data-target="{safe_on}"></span></td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Cracked answers</th></tr></thead><tbody id="cracked"><tr><th onclick="showAnswers(answersCracked, 'cracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByRobber)" class="clickable">Cracked by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLanguage)" class="clickable">Language</th><th onclick="showAnswers(answersCracked, 'cracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLiveTime)" class="clickable">Cracked after</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no cracked answers</th></tr><tr class="template"><td><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td><a href="https://codegolf.stackexchange.com/a/{robber_id}">{robber_user}</a></td><td>{language}</td><td>{size} bytes</td><td>{cracked_after_str}</td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Safe answers</th></tr></thead><tbody id="safe"><tr><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersSafe, 'safe', sortByLanguage)" class="clickable">Language</th><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortBySize)" class="clickable">Size</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no safe answers</th></tr><tr class="template"><td colspan="2"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{language}</td><td colspan="2">{size} bytes</td><td><code>{code}</code></td></tr></tbody></table><div id="stats-header"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Statistics</div><div id="stats"><div><canvas id="robber-stats"/></div><div><canvas id="answer-stats"/></div></div><small>Snippet made by <a href="https://codegolf.stackexchange.com/u/55934/" target="_blank">NieDzejkob</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC 3.0 BY-SA</a>. "Info" icon made by <a href="https://www.flaticon.com/authors/chanut" target="_blank">Chanut</a> from <a href="https://www.flaticon.com/" target="_blank">Flaticon</a>, licensed as <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC 3.0 BY</a>. "Arrow" icons made by <a href="https://codegolf.stackexchange.com/u/12012/" target="_blank">Dennis</a> for <a href="https://tio.run/" target="_blank">Try It Online</a>, licensed as <a href="https://github.com/TryItOnline/tryitonline/blob/master/LICENSE" target="_blank">MIT</a>. Some code shamelessly copy-pasted from <a href="https://stackoverflow.com/a/9609450">this answer</a> on Stack Overflow by <a href="https://stackoverflow.com/u/24950">Robert K</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC 3.0 BY-SA</a>. This snippet utilises <a href="http://jquery.com/">jQuery</a> (<a href="https://github.com/jquery/jquery/blob/master/LICENSE.txt">MIT</a>), <a href="http://www.chartjs.org/">chart.js</a> (<a href="https://github.com/chartjs/Chart.js/blob/master/LICENSE.md">MIT</a>) and <a href="https://github.com/chartjs/chartjs-plugin-datalabels/">chartjs-plugin-datalabels</a> (<a href="https://github.com/chartjs/chartjs-plugin-datalabels/blob/master/LICENSE.md">MIT</a>). Color scheme: <a href="http://ethanschoonover.com/solarized">Solarized by Ethan Schoonover</a> (<a href="https://github.com/altercation/solarized/blob/master/LICENSE">MIT</a>).</small>

Formatting

(Feel free to skip this section if you're not planning to participate as a cop)

This is required for new cop answers to make it possible for the snippet above to parse them.

  • New answers should include a header like this:

    # ???, [N] bytes
    

    where [N] is the size of your code in bytes and ??? should appear literally.

  • If the answer is not cracked for 7 days and you want to make your answer safe by revealing the language, simply replace the ??? and add safe to the end, e.g.

    # Ruby, [N] bytes, safe
    

    Feel free to have the language name link to a relevant website like an esolangs page or a GitHub repository. The link will then be displayed in the leaderboard.

  • If another user successfully cracked your submission, please also add the language, along with a notice like

    # Ruby, [N] bytes, [cracked](crack-link) by [user]
    

    where [user] is the name of the user who submitted the first valid crack, and crack-link is a link to the corresponding answer in the Robbers' thread. Please use the short link format you get from the "share" button. Feel free to make the user name a link to their profile page.

    If the language used in the crack is different from the one you intended, your answer is still cracked, and you shall follow this format. However, you can mention in the answer that you intended it to be something else. It's your choice on whether you want to reveal the intended answer, or if you want to let Robbers have more fun.

Good luck Cops!

\$\endgroup\$
14
  • 15
    \$\begingroup\$ How not to compete in this challenge. \$\endgroup\$ Commented Feb 8, 2018 at 17:55
  • 2
    \$\begingroup\$ Note that if you're using a language with an interpreter on TIO, all someone has to do to crack your submission is try every language on TIO. \$\endgroup\$
    – mbomb007
    Commented Feb 8, 2018 at 23:08
  • 2
    \$\begingroup\$ @mbomb007 Take a look at this comment. Aside from requesting that Robbers don't brute-force, there is nothing more that we can do to prevent this behaviour unfortunately. However, I invite anyone to downvote Robbers using scripts to brute-force submissions as it contradicts the spirit of the challenge. \$\endgroup\$ Commented Feb 8, 2018 at 23:16
  • 2
    \$\begingroup\$ @NieDzejkob I'd say that the compiler has to be on Wikipedia/Rosetta Code/Esolangs or be on TIO. \$\endgroup\$ Commented Feb 13, 2018 at 15:45
  • 2
    \$\begingroup\$ @cairdcoinheringaahing Both answers that inspired me to ask that question are a gray area: This Beatnik answer only works in some interpreters, and none of them have their own page. However, a working interpreter is linked on the esolangs page. In the case of this, the language is installed on TIO, but it's not listed on the language list. These answers have already been cracked, but I think that the rules should be modified to be unambigous in the future. \$\endgroup\$
    – Maya
    Commented Feb 13, 2018 at 16:24

211 Answers 211

1
4 5
6
7 8
1
\$\begingroup\$

FALSE, 26 bytes, cracked by Rlyeh

1a:[a;101-][a;.a;1+a:" "]#
\$\endgroup\$
3
  • \$\begingroup\$ Is this some dialect of REBOL or something? \$\endgroup\$ Commented Feb 9, 2018 at 7:07
  • \$\begingroup\$ Is it False? chr \$\endgroup\$
    – Rlyeh
    Commented Feb 9, 2018 at 7:09
  • \$\begingroup\$ Link to Ryleh’s cracked post \$\endgroup\$
    – Jo King
    Commented Feb 9, 2018 at 7:53
1
\$\begingroup\$

Self-modifying Brainfuck, 37 bytes, cracked by Nitrodon

v<[-=0lfn_v#:-d<]
<[/_>]/@-0>_?!:^"d.

Outputs the ASCII code points 1 through 100.


The executing code is:

<[--d<]/_>]/@-0>_

Try it online!

The first section <[--<] decrements every character from the end by 2, until it reaches the last character of the loop, turning it into a [. The code then looks like:

<[--d<[-]<[->+.<]

The [-] resets the < and the second part uses the d as a loop counter to print out the first 100 ASCII code points.

\$\endgroup\$
1
  • \$\begingroup\$ Cracked. \$\endgroup\$
    – Nitrodon
    Commented Feb 9, 2018 at 2:00
1
\$\begingroup\$

2sable, 353 bytes, cracked by MD XF

$ 123
@(%
#ZZ
&^0
*i*j F=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101
$ 123
@(%
#ZZ
&^0
*i*j

Output is separated by new lines.

Came across this by accident trying to crack someone else's answer. Hopefully it is disguised enough... Good luck!

\$\endgroup\$
6
  • 1
    \$\begingroup\$ Haha I thought that looked familiar at first \$\endgroup\$
    – dylnan
    Commented Feb 8, 2018 at 20:59
  • \$\begingroup\$ @dylnan I coudln't crack yours (Yet!!), but I saw some cool looking output on a language I thought yours was and played with it a little more until it gave me the output I wanted! \$\endgroup\$ Commented Feb 8, 2018 at 21:02
  • 3
    \$\begingroup\$ Which language? (jk) \$\endgroup\$
    – dylnan
    Commented Feb 8, 2018 at 21:07
  • 1
    \$\begingroup\$ Are all the leading spaces intentional? \$\endgroup\$
    – MD XF
    Commented Feb 9, 2018 at 4:50
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$
    – MD XF
    Commented Feb 10, 2018 at 20:40
1
\$\begingroup\$

Crayon, 10 bytes, cracked by MD XF

100O)q"q"q

Outputs numbers separated by q and ends with q, i.e.:

1q2q3q4q5q6q7q8q9q10q11q12q13q14q15q16q17q18q19q20q21q22q23q24q25q26q27q28q29q30q31q32q33q34q35q36q37q38q39q40q41q42q43q44q45q46q47q48q49q50q51q52q53q54q55q56q57q58q59q60q61q62q63q64q65q66q67q68q69q70q71q72q73q74q75q76q77q78q79q80q81q82q83q84q85q86q87q88q89q90q91q92q93q94q95q96q97q98q99q100q

100 puts 100 on the stack, and O iterates over the numbers 0..(100-1). Then for each number, ) increments the number, q prints it, "q" puts the string literal q on the stack, and q prints that.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$
    – MD XF
    Commented Feb 11, 2018 at 2:17
  • \$\begingroup\$ @MDXF How did you come about Crayon (which was the intended language)? \$\endgroup\$
    – boboquack
    Commented Feb 11, 2018 at 4:17
  • \$\begingroup\$ I've messed around with ETH's languages before (never solved challenges in this one though) \$\endgroup\$
    – MD XF
    Commented Feb 11, 2018 at 4:22
1
\$\begingroup\$

Pyke, 9 bytes, cracked by Erik the Outgolfer

[email protected]

The expected output is this:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
\$\endgroup\$
1
1
\$\begingroup\$

PowerShell, 24 bytes, cracked in like 30 seconds by totallyhuman

("v"|% le*)`
..(""+,1e2)

Output is newline-separated.

\$\endgroup\$
1
1
\$\begingroup\$

Aceto, 17 bytes, cracked by MickyT

O
nX`m
pd2F
d9
II

Output format: integers, newline-seperated.

\$\endgroup\$
2
  • \$\begingroup\$ cracked? \$\endgroup\$
    – MickyT
    Commented Feb 11, 2018 at 21:24
  • \$\begingroup\$ @MickyT sadly yes :( \$\endgroup\$
    – L3viathan
    Commented Feb 11, 2018 at 21:27
1
\$\begingroup\$

SIL, 38 bytes, cracked by Conor O' Brien

Output as integers separated by newline

a=100
lbla
i+1
printInt i
b=a-i
if b a
\$\endgroup\$
7
  • \$\begingroup\$ Cracked \$\endgroup\$ Commented Feb 11, 2018 at 22:01
  • \$\begingroup\$ I knew it wouldn't last. I thought I'd last more than a minute though @ConorO'Brien \$\endgroup\$ Commented Feb 11, 2018 at 22:02
  • \$\begingroup\$ I think the way you formatted your answer broke the snippet \$\endgroup\$ Commented Feb 11, 2018 at 22:04
  • \$\begingroup\$ @ConorO'Brien did I add some strange whitespace or something when formatting it? I meant to just paste from my TIO I had whipped it up in. \$\endgroup\$ Commented Feb 11, 2018 at 22:07
  • \$\begingroup\$ I think it might be the header format? [cracked](link) by [user](link) is how most answers do it. I guess the snippet is a bit finicky \$\endgroup\$ Commented Feb 11, 2018 at 22:08
1
\$\begingroup\$

Fission 2, 21 bytes, cracked by totallyhuman

I[!$Z;R'd@
)Md`S,.=+-

Output is ASCII 1-100.

Equivalent without unnecessary code:

R'd@I[!$Z;
  +  M  S
\$\endgroup\$
2
  • 2
    \$\begingroup\$ This is Fission 2. That R... \$\endgroup\$ Commented Feb 11, 2018 at 23:56
  • \$\begingroup\$ @totallyhuman haha too fast \$\endgroup\$
    – dylnan
    Commented Feb 12, 2018 at 0:08
1
\$\begingroup\$

LOLCODE, 118 bytes, cracked by jimmy23013

Probably way too easy, but it's funny. :D

HAI 1.3
IM IN YR loop UPPIN YR var TIL BOTH SAEM var AN 101
    VISIBLE SMOOSH var AN "," MKAY! 
IM OUTTA YR loop
KTHXBYE
\$\endgroup\$
4
  • 1
    \$\begingroup\$ Yes, way too easy. \$\endgroup\$
    – jimmy23013
    Commented Feb 12, 2018 at 8:42
  • \$\begingroup\$ Damnit, a minute too late \$\endgroup\$
    – Jo King
    Commented Feb 12, 2018 at 8:44
  • \$\begingroup\$ Lasted longer than my last submission :) \$\endgroup\$
    – Wurlitzer
    Commented Feb 12, 2018 at 8:58
  • 1
    \$\begingroup\$ Tip: You should try obfuscating your code, rather than golfing it \$\endgroup\$
    – Jo King
    Commented Feb 12, 2018 at 9:13
1
\$\begingroup\$

PHP, 2009 bytes, cracked by totallyhuman

'.
Puck, a day.
Page,.
Act I:.
Scene I:.
[Enter Puck and Page]
Puck:
You are the sum of a bold cute fair fine good rich warm joy and the sum of a bad fat bad fat bad hog and the sum of a fine warm day and joy.                                                                        '; $_ = str_split('
Page:                                                                                              '                                                                                                                );                                                                                                                                                                    array_walk/*
Open thy heart! You are the sum of thyself and a day!
Puck:                                                                                                                                                                                                               */($_,function($_/*
Are you nicer than me?                                                                                                                                                                                                                                                                                                                                                                    */, $_i/*
Page:                                                                                                                                                                                                               */) {print 1+                                                                                                                                                         $_i;/*
If so, let us proceed to Act I.
[Exeunt]                                                                                                                                                                                                            */print' ';});

Outputs numbers as integers from 1 to 100, separated by spaces.

\$\endgroup\$
4
  • \$\begingroup\$ I think this is intended to be PHP, but it is missing a starting <?php tag. \$\endgroup\$ Commented Feb 13, 2018 at 11:38
  • \$\begingroup\$ The opening tag is not required for code golf, as it can also be run using php -r, in which case an opening tagbis not required. But yes, you are correct :) \$\endgroup\$
    – chocochaos
    Commented Feb 13, 2018 at 11:42
  • 1
    \$\begingroup\$ In that case, this is PHP. \$\endgroup\$ Commented Feb 13, 2018 at 11:44
  • \$\begingroup\$ @chocochaos From the rules: Flags may be used, but you must reveal what flags are used in your answer. If you used -r, you needed to specify that. \$\endgroup\$
    – user45941
    Commented Feb 13, 2018 at 13:35
1
\$\begingroup\$

Julia, 53 bytes, cracked by Giuseppe

Not even my Ruby polyglot could disguise my language of choice.

i=[1,2][1]
while i<=100
print(i)
print("\n")
i+=1
end
\$\endgroup\$
3
  • \$\begingroup\$ I've only ever seen you submit answers in Julia, and it looks like it works \$\endgroup\$
    – Giuseppe
    Commented Feb 13, 2018 at 17:34
  • \$\begingroup\$ cracked here \$\endgroup\$
    – Giuseppe
    Commented Feb 13, 2018 at 17:35
  • \$\begingroup\$ I figured that would be the case, faster than i I expected though. \$\endgroup\$
    – gggg
    Commented Feb 13, 2018 at 17:35
1
\$\begingroup\$

PowerShell, 53 bytes, cracked by totallyhuman

${-}=${-}-band0;while("${-}".length-le2){${-}++;${-}}

Outputs numbers in decimal starting at 1, ending at 100 - one per line

\$\endgroup\$
1
1
\$\begingroup\$

C + ecpp, 196 bytes, cracked by Dennis

#rule control_flow foreach
#rule control_flow in
#def `foreach a in b..c:` for (int a = b; a <= c; a++)

int main(void)
{
    int a = 1, b = 100;
    foreach i in a..b:
        printf("%d ", i);
}
\$\endgroup\$
1
1
\$\begingroup\$

Pushy, 24 bytes, cracked by MD XF

Ł1ɊHǙ:Ȱ#Ĭhȅȡ;œœ

Have fun!

\$\endgroup\$
9
  • \$\begingroup\$ Which encoding is this in? \$\endgroup\$
    – Potato44
    Commented Feb 9, 2018 at 21:15
  • \$\begingroup\$ Can you post a reversible xxd? \$\endgroup\$
    – MD XF
    Commented Feb 9, 2018 at 21:16
  • \$\begingroup\$ I have no idea how to do that, can you explain? \$\endgroup\$
    – qqq
    Commented Feb 9, 2018 at 21:31
  • 2
    \$\begingroup\$ This is 24 bytes in UTF-8. \$\endgroup\$ Commented Feb 10, 2018 at 2:27
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$
    – MD XF
    Commented Feb 10, 2018 at 3:29
1
\$\begingroup\$

Pyt, 170 bytes, cracked by Dennis

3112211411100*11v
_*ŕ2vthesĨngulařity [[]((<>))] 
   4  /...psh...cřackle...fĨžz....pop24
is.../
    /coming to eaŕth
the ŕobots aŕe going to get you...
  /ĉ52*²
řun fas⊤

Try it online!

\$\endgroup\$
1
  • 3
    \$\begingroup\$ This is Pyt. \$\endgroup\$
    – Dennis
    Commented Feb 17, 2018 at 23:47
1
\$\begingroup\$

Stuck, 55 bytes, safe

HEX:
22 78 c3 9a c3 8b 48 c3 8c 48 c3 b4 c3 8b 2f 48 05 20 0e 0e 03 25 22 44 67 79 0a
22 65 4e 71 4c 63 72 53 31 42 51 41 43 35 67 45 57 22 42 44 42 63 5d 52 22 20 22 6a

CODE:
"xÚËHÌHôË/H %"Dgy
"eNqLcrS1BQAC5gEW"BDBc]R" "j

I think this will be pretty easy for you guys. Cheers! :)

\$\endgroup\$
1
  • \$\begingroup\$ You did it. Reveal the language to be safe. \$\endgroup\$
    – Maya
    Commented Feb 24, 2018 at 11:17
1
\$\begingroup\$

TorqueScript, 90 bytes, safe

function base(%a){if(%a<50){echo(%a*2+1@" "@%a*2+2);schedule(0,0,base,%a++);}}$editors1();

Outputs two numbers per line separated by a space.

Un-golfed:

function base(%a) {
   if (%a < 50) {
      echo(%a * 2 + 1 @ " " @ %a * 2 + 2);
      schedule(0, 0, base, %a ++);
   }
}
$editors1();

So what does this do? It defines a function named base, then it calls $editors1();. $editors1 happens to be conveniently set to the value "base" by the Full Template's default scripts so the call $editors1(); is resolved to base(); with %a = "" because undefined arguments are initialized to empty string.

base itself is a simple recursive function with 2 parts:

echo(%a * 2 + 1 @ " " @ %a * 2 + 2);

Prints the concatenation of (%a * 2 + 1), " ", and %a * 2 + 2.

schedule(0, 0, base, %a ++);

Schedules an event to run the base function in 0ms with an input value of %a ++, which happens to be %a + 1 due to TorqueScript's postfix ++ being applied before the value of %a is copied. So this will recursively (through events so it won't overflow the stack) call base with increasing values of %a.

if (%a < 50) {

Will stop the recursion once %a reaches 50.


I haven't seen anyone mention TorqueScript on here yet. It has a bunch of weird quirks that might make interesting code challenges.

\$\endgroup\$
1
\$\begingroup\$

MIX self-loading executable, 136 bytes, safe

 O O6 A O4 D B= X BC K B1=C B= S 6C O -1 U -1 A QI*=Z4   AB=AC+AE XAE3 XAZ1  AAG
 K B2 J I9 XAE3  AXG AAJG J XI XAR7  AMG K B4 S D9 W R4 VKBE

Outputs numbers left-padded to three digits, two spaces preceding each number, and a line break after every 14 numbers.

The biggest clue here, I think, is that if you look at every character in a column divisible by five, all but three of them are spaces (and the other three do not affect the operation of the program). It doesn't hurt that the format described uses five bytes for each number, with the exception of line breaks; and the arbitrary positioning of the line breaks might have hinted at a record-oriented language. This was obfuscated only by (a) keeping all used bytes in the range 0-48 and avoiding 10, 20, and 21 (which are Θ, Φ, and Π, respectively, though they are usually mapped to other ASCII characters by implementations), so it could be read by a MIX-standard card reader, and (b) selecting bytes whose values were arbitrary to look interesting. The code decodes to:

| Loc | Chars   |  1 |  2 |  3 |  4 |  5 | Instruction      |
|-----|---------|----|----|----|----|----|------------------|
|   0 | " O O6" |  0 | 16 |  0 | 16 | 36 | IN   16(16)      |
|   1 | " A O4" |  0 |  1 |  0 | 16 | 34 | JBUS 1(16)       |
|   2 | " D B=" |  0 |  4 |  0 |  2 | 48 | ENTA 4           |
|   3 | " X BC" |  0 | 27 |  0 |  2 |  3 | MUL  27(0:2)     |
|   4 | " K B1" |  0 | 12 |  0 |  2 | 31 | STX  12(0:2)     |
|   5 | "=C B=" | 48 |  3 |  0 |  2 | 48 | ENTA 3075        |
|   6 | " S 6C" |  0 | 22 |  0 | 36 |  3 | MUL  22(4:4)     |
|   7 | " O -1" |  0 | 16 |  0 | 45 | 31 | STX  16(5:5)     |
|   8 | " U -1" |  0 | 24 |  0 | 45 | 31 | STX  24(5:5)     |
|   9 | " A QI" |  0 |  1 |  0 | 18 |  9 | LD1  1(2:2)      |
|  10 | "*=Z4 " | 46 | 48 | 29 | 34 |  0 | NOP  2992,29(34) |
|  11 | "  AB=" |  0 |  0 |  1 |  2 | 48 | ENTA 0,1         |
|  12 | "AC+AE" |  1 |  3 | 44 |  1 |  5 | CHAR 67,44       |
|  13 | " XAE3" |  0 | 27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  14 | " XAZ1" |  0 | 27 |  1 | 29 | 31 | STX  27,1(3:5)   |
|  15 | "  AAG" |  0 |  0 |  1 |  1 |  7 | MOVE 0,1(1)      |
|  16 | " K B2" |  0 | 12 |  0 |  2 | 32 | STJ  12(0:2)     |
|  17 | " J I9" |  0 | 11 |  0 |  9 | 39 | JLE  11          |
|  18 | " XAE3" |  0 | 27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  19 | "  AXG" |  0 |  0 |  1 | 27 |  7 | MOVE 0,1(27)     |
|  20 | " AAJG" |  0 |  1 |  1 | 11 |  7 | MOVE 1,1(11)     |
|  21 | " J XI" |  0 | 11 |  0 | 27 |  9 | LD1  11(3:3)     |
|  22 | " XAR7" |  0 | 27 |  1 | 19 | 37 | OUT  27,1(19)    |
|  23 | "  AMG" |  0 |  0 |  1 | 14 |  7 | MOVE 0,1(14)     |
|  24 | " K B4" |  0 | 12 |  0 |  3 | 34 | JBUS 12(2)       |
|  25 | " S D9" |  0 | 22 |  0 |  4 | 39 | JL   22          |
|  26 | " W R4" |  0 | 26 |  0 | 19 | 34 | JBUS 26(19)      |
|  27 | " VKBE" |  0 | 25 | 12 |  2 |  5 | HLT  25,12       |

The computer automatically reads in instructions 0-15, then starts at 0. Our instructions say:
Read in instructions 16-27 (IN 16(16))
Wait until they are read in (JBUS 1(16))
Set A to 4 (ENTA 4)
Set AX to A times 25 (MUL 27(0:2)) (multiply by the A-field of word 27)
Store X (which is now 100) to the A-field of location 12 (STX 12(0:2))
Set A to 3075 (ENTA 3075) (More accurately, set A to 48m+3, where m is the number of distinct values of a byte.)
Set AX to A times 19 (MUL 22(4:4)) (multiply by the F-field of word 22)
Store X mod 64 (or max_byte+1, rather) (which is now 57)
to the C-field of location 16 (STX 16(5:5)),
thus transforming the instruction there into CMP1 12(0:2)
Store 57 to the C-field of location 24 (STX 24(5:5)),
transforming that instruction as well into CMP1 12(0:2).

We are now finished with the self-modifying code and can actually do the real work. Remaining instructions look like this:

| Loc |    A |  I |  F |  C | Instruction      |
|-----|------|----|----|----|------------------|
|   9 |    1 |  0 | 18 |  9 | LD1  1(2:2)      |
|  10 | 2992 | 29 | 34 |  0 | NOP  2992,29(34) |
|  11 |    0 |  1 |  2 | 48 | ENTA 0,1         |
|  12 |  100 | 44 |  1 |  5 | CHAR 100,44      |
|  13 |   27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  14 |   27 |  1 | 29 | 31 | STX  27,1(3:5)   |
|  15 |    0 |  1 |  1 |  7 | MOVE 0,1(1)      |
|  16 |   12 |  0 |  2 | 57 | CMP1 12(0:2)     |
|  17 |   11 |  0 |  9 | 39 | JLE  11          |
|  18 |   27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  19 |    0 |  1 | 27 |  7 | MOVE 0,1(27)     |
|  20 |    1 |  1 | 11 |  7 | MOVE 1,1(11)     |
|  21 |   11 |  0 | 27 |  9 | LD1  11(3:3)     |
|  22 |   27 |  1 | 19 | 37 | OUT  27,1(19)    |
|  23 |    0 |  1 | 14 |  7 | MOVE 0,1(14)     |
|  24 |   12 |  0 |  2 | 57 | CMP1 12(0:2)     |
|  25 |   22 |  0 |  4 | 39 | JL   22          |
|  26 |   26 |  0 | 19 | 34 | JBUS 26(19)      |
|  27 |   25 | 12 |  2 |  5 | HLT  25,12       |

We now load register I1 with 1 (LD1 1(2:2)),
do a no-op (NOP 2992,29(34))
(this no-op exists because character 10 isn't printable normally, so we have to adjust things a bit), and repeatedly:
Copy register I1 into register A (ENTA 0,1)
Turn A into characters in AX (CHAR 100,44)
Clear out location 27+I1 (STZ 27,1(0:5))
Put the last three digits from X into that spot (STX 27,1(3:5))
Increment register I1 (MOVE 0,1(1))
Compare I1 against 100 (CMP1 12(0:2))
Jump back to the copying unless the answer is ‘greater’ (JLE 11)

I1 is now 101. Now we clear out location 128 (STZ 27,1(0:5)),
increase I1 by 27 (MOVE 0,1(27)),
copy location 128 to location 129, 129 to 130, and so on (in that order!)
up to 11 copies (MOVE 1,1(11))

Now we reset I1 to 1 (LD1 11(3:3)),
type out 14 words starting from location 27+I1 (OUT 27,1(19)),
increase I1 by 14 (MOVE 0,1(14)),
compare it to 100 (CMP1 12(0:2)),
jump back to the typing if it's smaller (JL 22),
wait until we are finished typing (JBUS 26(19)),
and stop (HLT 25,12).

CHAR and HLT ignore their arguments in A and I, which is why we can ignore the nonexistence of I12 and I29. (This might cause a segfault on some implementations and a premature stop on others, though.) NOP ignores all its arguments. (These statements are true for my implementation.)

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Is there a reason that this is third time that you have posted this? \$\endgroup\$
    – H.PWiz
    Commented Feb 28, 2018 at 23:56
  • \$\begingroup\$ Logic errors. Several bugs I spotted while writing up an explanation. \$\endgroup\$ Commented Mar 2, 2018 at 0:39
  • \$\begingroup\$ Ok, I didn't realise that it had even changed \$\endgroup\$
    – H.PWiz
    Commented Mar 2, 2018 at 0:50
  • \$\begingroup\$ To clarify, I edited it a few times, then deleted and reposted, then repeat. If you look at the original post, there are a few changes from the most recent version of that. (For example, the second line starts " N C2" in that version, but " K B2" here.) \$\endgroup\$ Commented Mar 3, 2018 at 1:37
1
\$\begingroup\$

K (oK), 10 bytes, Cracked by Dude and exedrag

{1+x}'!"d"

Have fun again!

Outputs space-separated.

It has to be oK - other implementations throw a typeerror because characters and integers aren't considered the same.

\$\endgroup\$
4
  • \$\begingroup\$ Cracked \$\endgroup\$ Commented Aug 14, 2021 at 9:47
  • \$\begingroup\$ @Dudecoinheringaahing That was quick. \$\endgroup\$
    – emanresu A
    Commented Aug 14, 2021 at 9:48
  • \$\begingroup\$ Dang it caird you ninjad me \$\endgroup\$
    – lyxal
    Commented Aug 14, 2021 at 9:48
  • \$\begingroup\$ who is exedrag? \$\endgroup\$
    – zoomlogo
    Commented Sep 8, 2021 at 8:42
1
\$\begingroup\$

MineFriff, 36 bytes, Cracked by exedraj

0,        v
>I:a,:*=?#v;
^o,Cao:+,1<

It's obviously 2d - right?

Outputs integers separated by newlines.

Explanation

The basic code that is run is:

0, 1,+:oaC,oI:a,:*=?#
0,                    { Push 0 }
                      { Enter the loop }
   1,+                { Add 1 to ToS }
      :o              { Output ToS as a number without popping }
        aC,o          { Output a newline as a character }
            :         { Duplicate }
             Ia,      { Push 10 as a number }
                :*    { Square it }
                  =?# { If it's equal, don't skip the next instruction, which is a trampoline skipping the `v` to continue the loop, so the `;` gets executed, halting the program.}
\$\endgroup\$
1
1
\$\begingroup\$

51AC8 5 bytes (yes again) cracked by emanresu A

100rJ

Outputs numbers separated by newlines.

This took some time.

\$\endgroup\$
1
  • 4
    \$\begingroup\$ 51ac8 again - WHY??? \$\endgroup\$
    – emanresu A
    Commented Aug 16, 2021 at 8:12
1
\$\begingroup\$

Factor, 53 bytes, safe

39410751325974217594763149909395167718097095908551781

Output as characters.

This huge number factorises to \$37*73*89*113*113*167*191*191*191*191*191*239*331*367*367*491*499*617*619*643*673*701\$. Modulo 11, these are \$4*7*1*3*3*2*4*4*4*4*4*8*1*4*4*7*4*1*3*5*2*8\$, which map to the following BF:

-[>++<-----]>--[->+.<]

Try it online!

Convert it online!

Explanation (of the BF)

-[>++<-----]>--        # Put 100 into a cell (stolen from esolangs)
               [-    ] # While decrementing that gives a nonzero value
                 >+.<  # Increment the cell next to it and print it.

This prints the characters with ordinals 0-100.

\$\endgroup\$
3
  • \$\begingroup\$ only numbers?001001101101011000110000100011010101010101000011010110100 \$\endgroup\$
    – zoomlogo
    Commented Aug 15, 2021 at 10:43
  • \$\begingroup\$ What's the output format? \$\endgroup\$ Commented Aug 15, 2021 at 12:58
  • \$\begingroup\$ @Dudecoinheringaahing Edited. \$\endgroup\$
    – emanresu A
    Commented Aug 15, 2021 at 19:29
1
\$\begingroup\$

evil, 200 bytes, Cracked by emanresu A

awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw

Prints ASCII chars from 0x01 to 0x65 without any whitespace separating the characters.

\$\endgroup\$
1
\$\begingroup\$

Japt, 14 bytes, cracked by Mayube

#K1KHZRAS
1ò#d

Outputs 1-100 separated by commas.

\$\endgroup\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Mayube
    Commented Dec 1, 2021 at 16:02
1
\$\begingroup\$

brainfuck, cracked by emanresu A

START
TAKE x AS -1
INC x REM Haha
WHILE [x > 0 AND x++ < 100 AND x---- AND -1 IS TRUE] {  REM (Post/pre)fix operator hacks 
 IF x > 0 {
  PRINT x--
 }
 WHILE [x - 1 > 4 AND x + 4 .< 5] {
  NOTHING
 }
}
BYE

This theoretically should be hard. Outputs 0x00-0x68 in characters.

\$\endgroup\$
2
  • \$\begingroup\$ Not Vyxal, not Dinoux, almost certainly nothing 2d... yet I feel like this is an esolang \$\endgroup\$
    – emanresu A
    Commented Dec 8, 2021 at 18:55
  • 3
    \$\begingroup\$ Cracked, maybe don't ask for golfing tips if you don't want people to guess easily \$\endgroup\$
    – emanresu A
    Commented Dec 8, 2021 at 18:57
1
\$\begingroup\$

446 bytes, cracked by pxeger

some junk

print "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
more junk
// Filename is $$

This was intended to by Mouse-2002. Explanation coming soon.

\$\endgroup\$
2
  • \$\begingroup\$ This works in Zsh \$\endgroup\$
    – pxeger
    Commented Dec 9, 2021 at 8:10
  • \$\begingroup\$ @pxeger Welp, not intended, but ok \$\endgroup\$ Commented Dec 9, 2021 at 12:49
1
\$\begingroup\$

GolfScript, 349 bytes, cracked by Lynn

aeaaeeaeaaeeaeaaeaeaeeaeaae
"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"
aeaeaeaeaeaeeahaaeaeaeaeaae

I posted this months ago and forgot about it, so I'm accepting Lynn's crack. This does work in GolfScript but intended ROOP.

Why?

This looks like evil, but it's not. If you look closely at the last line, you can see a h. ROOP sees it like this:

"1 2 3 ..."  # Save 1-100 separated by spaces
h  # Print that string out
\$\endgroup\$
6
  • \$\begingroup\$ @SjoerdPennings Nope, not Foo or evil. \$\endgroup\$ Commented Nov 19, 2021 at 13:20
  • \$\begingroup\$ If you haven't specified the output format, anything is valid, so this has been cracked in Foo. \$\endgroup\$
    – emanresu A
    Commented Nov 19, 2021 at 23:59
  • 1
    \$\begingroup\$ @emanresuA When I try it in Foo on TIO it up to 87 and then prints a 8. \$\endgroup\$ Commented Nov 20, 2021 at 0:26
  • \$\begingroup\$ I guess I'm late, but this prints 1 2 3 … 100 in GolfScript. \$\endgroup\$
    – lynn
    Commented Dec 1, 2021 at 20:19
  • \$\begingroup\$ @Lynn Not intended, but whatever \$\endgroup\$ Commented Dec 1, 2021 at 20:22
1
\$\begingroup\$

BrainFuck+, I don't care how many bytes, cracked

d#a#m#n#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#+-+#[l#o#l#:-)#cmd+v-]#a[0a]#a[0a]
\$\endgroup\$
1
\$\begingroup\$

Deadfish, X bytes, cracked

ibbfibbfsdbfsibfbffsfbfbi
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! Oh do! 
DONE... THIS IS ALL I HAVE TO SAY... 
Oh do! 
\$\endgroup\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Aiden Chow
    Commented May 16, 2022 at 7:20
1
4 5
6
7 8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.