求见地,不加密的前提下,让后来人看不懂代码或数据
求想法,不加密的前提下,让后来人看不懂代码或数据
单位又要裁员了,2014年新年前夕,把整个企划全砍了,一分钱的单方解除劳动合同的补贴也不给,年后这几个月,每个月都要裁员一批人,各个部门倒班来,一分补贴不给。人事部门找挨刀的员工谈话,要么发送到本市的其他县市,要么降工资,逼着员工自动离职,这样就可以避免赔偿。
小弟我最近听到风了,我工资有点高了(青岛地区.net10年经验给6000还算高),打算要弄我了。开始在背地后里找小孩编译我的代码了(我是vb)。
代码可以给,数据库结构可以给,这些都是无条件的给,公司拥有版权。但是不能拿人当猴子耍,不给赔偿,清水捞银子。
现在源代码在我手里,数据库也由我控制,我不想加密,加密不给解密方法是犯罪。所以我就想问问,有什么办法能让后来人看不懂我的代码,看不懂我的数据库或里面的信息,看不懂是你技术问题,不是我不交接。
希望各位能理解我的苦衷,勿喷。
------解决思路----------------------
代码写完后,有意义的参数改成没意义的,然后利用vs的替换功能,保证功能不出错,然后增加其它无意义参数,但不能定义了就拉倒,要去执行相关取数据或者更新操作,但一定不能影响正确功能,一个循环不行,要改成n重循环,其实根本功能还是一次循环,然后新技术多用点,涉及范围越广越好
好了,说了这么说,最后来句最重要的,技术员的不可替代性不是靠这些的,这样其实大家都不好,个人的自我成长还是最重要,有时候出来闯还是要的
------解决思路----------------------
把定义的变量替换为 _a,_b_c 。把分开的方法合并为一个方法(前提是不影响功能);将页面来回引用
------解决思路----------------------
其实你再怎么去想,你的想法放到被你认为很蠢的一帮领导者那里,也几乎都是很无奈的。在他们看来,只要有“小孩儿编译”就行。
换句话说,你做菜别人负责当跑堂招待,如果在他们看来只要有几个跑堂的人就足够应付一段时间了,那么你这个厨师仅仅把精力放在做菜上,能保护自己吗?
实际上,你的公司留下2、3个技术很低级的骗子来做项目,那其实就说明你当初自己也把自己放到了一个皮包公司、骗子公司的行列里而不自知,所以才招致今天的遗憾和对用户的惋惜。这世界上骗子软件公司很多,而傻瓜用户更多,不用替他们过分惋惜。做好自己的事情就行了。
------解决思路----------------------
你想让“后来人看不懂代码”,这是很悲催的一种想法,这是有点追求的人才会去想的。
而那些骗子程序员老早就跟你的老板说了:其实咱们的用户、咱们的项目用不着那么好地去设计代码啊,其实用跟 Medic 一样的工资,我用很低级的技术,模仿他可以做更多工作啊!
你面对这种人,就会很无奈。因为这种人是会有听众和观众鼓掌的。因为这种人攻的是老板的心,而你得罪了老板。
------解决思路----------------------
这个不好弄了..
实际在这这种中小型企业中 来来回回 都是增删改查 这代码 一般有一点能力都能看懂..没什么难度.
就算是第三方的东西 无非就是属性 方法而已.
难得是业务.. 比如审批几次怎么退回或者是其他的流程 才能难道人..(因为他不熟悉)
所以LZ要从代码下手我看是别想了 毕竟这玩意一共就那么多东西 百度也能搜索得到.
------解决思路----------------------
几年前我在青岛的时候做游戏开发,工作3年,也是.NET待遇比你高。
6000,10年还算高,只能说你水平不咋地,说完了,企业裁人你10年来混吃等死,等到了裁人那天才追悔莫及,
以前带的小弟,研究生吧,刚毕业了再黄岛的待遇是税后年薪7,8W左右,你自己想把
------解决思路----------------------
程序员总是用自己的的追求去看待别人,看不懂那些搞政治的人是如何去黑别人的。
------解决思路----------------------
但是辞退不给钱,就违法了吧,难道不能告他们么?
至于你说的怎么办,很简单呀~~~,把名字全改成无意义的。
比如说name,翻译成中文就是名字吧?mz,
然后第二个重叠的就MZ1,然后数据库字段无,
修改逻辑,让逻辑变的无比复杂难懂,绕圈圈。
说白了就是看不懂你的逻辑,交接的时候就跟他说这个功能是干啥的,那个功能是干啥的,整体功能是干啥的不说。
交接的时候你给他代码,说你自己看吧不懂问我。
------解决思路----------------------
总之办法就和混淆器做的事情一样,只不过是手动做。简单的就是改名和修改逻辑,修改逻辑这个也可以把一些条件替换为使用扔Exception的方式,执行路径更难理解。故意滥用设计模式,可以让结构更复杂。或者利用线程/异步也能让情况变得复杂。
复杂的可以把关键方法的 IL 抽离出来,以二进制形式作为资源嵌入程序集,调用的时候通过这段 IL 生成动态方法执行。如果加密是黑色,这种做法算是灰色的吧(相当于部分代码是以编译后的形式存在)。更白一点的是把代码转换成对应的表达式形式,表达式编译后相当于原方法(相当于部分代码以AST中间形式存在)。我更倾向于主体部分表达式化,一些简单的地方 emit il,可以美其名曰为了实现一些动态功能和提高效率。
代码存在的形态无非是:字符串(可以再分为直接编译和运行时编译)、 AST、 IL、 汇编(机器指令)。改名和修改逻辑都是还在原始形态下,其它形态会更难以理解。此外,还有一些与 clr 和操作系统相关的办法就不提了。
不过其实我觉得,如果你能把上面说的这些做出效果,那应该没必要纠结什么裁员了,还不如花时间去找份更好的工作。说到底,长远看来,自己的能力才是自己利益的最好保证。
------解决思路----------------------
我记得几个月前非技术区有篇精品帖,就是“教”人怎么干这种事的。。。
------解决思路----------------------
http://bbs.****.net/topics/390951593
------解决思路----------------------
那种所谓的“代码命名规范”方面的开玩笑的文章不但无法利用,而且也不会为你的程序加入任何“质量陷阱”。
毕竟,用vs重命名某个变量易如反掌,这是vs的代码重构机制上就自动完成的(它会自动根据整个解决方案的词法分析去自动改名)。所以给变量改名,基本上是耽误自己的智慧的大脑。
这种事想太多了,就伤害了自己。不用想太多,只要任性地想干什么就干什么算了,如果你怂了那就别干,不要想太多。现在你的公司已经不给你太多时间去正常地想问题了。
------解决思路----------------------
我也想找这个来着ww
------解决思路----------------------
“后来人看不懂代码或数据”?!估计这样的代码或数据你也会看起来很费劲了。
------解决思路----------------------
那就来了2个新问题了,既然课业时间比上班时间应该是短的吧,
而你课业时间比上班赚的多,你可以考虑不上班了。
第二个问题
你不要去改数据库结构,你改了的话就属于违法了,你改名称就行了,改算法,让人看不懂,但是将来可能会用到的地方。
最后再注释里加一个公司过河拆桥,卑鄙无耻,新来的你看着办吧。
------解决思路----------------------
需要的话,我有人推荐
------解决思路----------------------
可以在你的代码里面写上注释
//等你把我的源码,全部编译出来,也就到公司把你辞职的时候了

------解决思路----------------------
你这个不了解,要C的代码,可以把C代码转成汇编代码,然在C代码里面调汇编,汇编里面调用C代码,美其名曰提高效率,哈哈,我真是太坏了……
------解决思路----------------------
我个人认为,你去找个更好的工作比费精神搞这个更好。而且你把代码搞得看不懂反而让后面的人觉得你技术不行,人老板解雇你是明智的。想想这多么得不偿失。往宽处走,路会越走越宽。
------解决思路----------------------
程序员何必欺负程序员呢
------解决思路----------------------
程序员 为何为难 程序员
你这么干能报复到公司么,要报复的对象够搞错了
百度一下:踢猫效应
有时间干这个,不如用这些时间找工作吧
------解决思路----------------------
怪可怜,难道这就是程序员的下场吗
------解决思路----------------------
随便吧。等你以后再去有事麻烦以前的同事(哪怕只是帮你把原本属于你自己正在看的一个文档考回来),你会知道人情冷暖了。所以现在也就看自己心情去干吧。
------解决思路----------------------
感觉楼主实在想挺多,被辞职是可以维权的
------解决思路----------------------
简单说,计划个时间线(TimeLine),画好关键时间段,每个时间段内的双方的“利损”关系
留下一些变动的余地,保证“恢复代码可工作状态”
.NET版本不同造成的代码兼容问题之类的
------解决思路----------------------
代码混淆也许可以帮你。。。。
------解决思路----------------------

楼主你不会玩?
你把其中一个工程或某个控件库单独编译一下 改成与市面上商业软件名称,命名空间一样的DLL 就成了。
这部份代码你可以不用交给公司了。就说是第三方组件库,没有代码。接下来你该怎么整就怎么整了。
------解决思路----------------------
代码看不懂很简单,多余空格去掉,没有任何的备注,说明。谁会去看这样的鸟代码。不过这样做值得吗,
------解决思路----------------------
一个类里面方法名全部一样 dosomething 然后用参数区分开来 这这样没人愿意维护你的代码了
------解决思路----------------------
一般逻辑复杂一些的代码,根本就不需要加密,没有注释就是加密了
------解决思路----------------------
这就是去大公司和小公司的区别吗,时刻担心被裁,而不是充实自己。
------解决思路----------------------
ls讲大义什么的都是妇人之仁,这个时候就要快刀斩乱麻,核心算法设置时间效应,两个月一过,工资,什么的都交接完毕,没把柄在原公司手上了,算法不行了,老板来求你了,这个时候你就想怎么搞就怎么搞了。
------解决思路----------------------
代码混淆一下,但对于有耐心的人来说没什么卵用。真有用的是滥用设计模式,加上滥用继承。一个类继承5层基本上就能让人崩溃了。
------解决思路----------------------
去掉所有注释。sql改成各种扯犊子的查询。
瞎注释。注释写文言文,或者写 中文,英文以外的文字,比如,日语,汉语,阿拉伯语等等。
------解决思路----------------------
把代码写的牛x一点,别人就不是很容易看懂了。
------解决思路----------------------
我只是个学c++的学生,我虽然不会.net,但对于你的问题,我想应该是不难的,楼主既然有十年工作经验,想必对于代码中的技术难点也是非常精通,代码可以写的具有可阅读性,也可以写的像天书。
单位又要裁员了,2014年新年前夕,把整个企划全砍了,一分钱的单方解除劳动合同的补贴也不给,年后这几个月,每个月都要裁员一批人,各个部门倒班来,一分补贴不给。人事部门找挨刀的员工谈话,要么发送到本市的其他县市,要么降工资,逼着员工自动离职,这样就可以避免赔偿。
小弟我最近听到风了,我工资有点高了(青岛地区.net10年经验给6000还算高),打算要弄我了。开始在背地后里找小孩编译我的代码了(我是vb)。
代码可以给,数据库结构可以给,这些都是无条件的给,公司拥有版权。但是不能拿人当猴子耍,不给赔偿,清水捞银子。
现在源代码在我手里,数据库也由我控制,我不想加密,加密不给解密方法是犯罪。所以我就想问问,有什么办法能让后来人看不懂我的代码,看不懂我的数据库或里面的信息,看不懂是你技术问题,不是我不交接。
希望各位能理解我的苦衷,勿喷。
------解决思路----------------------
代码写完后,有意义的参数改成没意义的,然后利用vs的替换功能,保证功能不出错,然后增加其它无意义参数,但不能定义了就拉倒,要去执行相关取数据或者更新操作,但一定不能影响正确功能,一个循环不行,要改成n重循环,其实根本功能还是一次循环,然后新技术多用点,涉及范围越广越好
好了,说了这么说,最后来句最重要的,技术员的不可替代性不是靠这些的,这样其实大家都不好,个人的自我成长还是最重要,有时候出来闯还是要的
------解决思路----------------------
把定义的变量替换为 _a,_b_c 。把分开的方法合并为一个方法(前提是不影响功能);将页面来回引用
------解决思路----------------------
其实你再怎么去想,你的想法放到被你认为很蠢的一帮领导者那里,也几乎都是很无奈的。在他们看来,只要有“小孩儿编译”就行。
换句话说,你做菜别人负责当跑堂招待,如果在他们看来只要有几个跑堂的人就足够应付一段时间了,那么你这个厨师仅仅把精力放在做菜上,能保护自己吗?
实际上,你的公司留下2、3个技术很低级的骗子来做项目,那其实就说明你当初自己也把自己放到了一个皮包公司、骗子公司的行列里而不自知,所以才招致今天的遗憾和对用户的惋惜。这世界上骗子软件公司很多,而傻瓜用户更多,不用替他们过分惋惜。做好自己的事情就行了。
------解决思路----------------------
你想让“后来人看不懂代码”,这是很悲催的一种想法,这是有点追求的人才会去想的。
而那些骗子程序员老早就跟你的老板说了:其实咱们的用户、咱们的项目用不着那么好地去设计代码啊,其实用跟 Medic 一样的工资,我用很低级的技术,模仿他可以做更多工作啊!
你面对这种人,就会很无奈。因为这种人是会有听众和观众鼓掌的。因为这种人攻的是老板的心,而你得罪了老板。
------解决思路----------------------
这个不好弄了..
实际在这这种中小型企业中 来来回回 都是增删改查 这代码 一般有一点能力都能看懂..没什么难度.
就算是第三方的东西 无非就是属性 方法而已.
难得是业务.. 比如审批几次怎么退回或者是其他的流程 才能难道人..(因为他不熟悉)
所以LZ要从代码下手我看是别想了 毕竟这玩意一共就那么多东西 百度也能搜索得到.
------解决思路----------------------
几年前我在青岛的时候做游戏开发,工作3年,也是.NET待遇比你高。
6000,10年还算高,只能说你水平不咋地,说完了,企业裁人你10年来混吃等死,等到了裁人那天才追悔莫及,
以前带的小弟,研究生吧,刚毕业了再黄岛的待遇是税后年薪7,8W左右,你自己想把
------解决思路----------------------
程序员总是用自己的的追求去看待别人,看不懂那些搞政治的人是如何去黑别人的。
------解决思路----------------------
但是辞退不给钱,就违法了吧,难道不能告他们么?
至于你说的怎么办,很简单呀~~~,把名字全改成无意义的。
比如说name,翻译成中文就是名字吧?mz,
然后第二个重叠的就MZ1,然后数据库字段无,
修改逻辑,让逻辑变的无比复杂难懂,绕圈圈。
说白了就是看不懂你的逻辑,交接的时候就跟他说这个功能是干啥的,那个功能是干啥的,整体功能是干啥的不说。
交接的时候你给他代码,说你自己看吧不懂问我。
------解决思路----------------------
总之办法就和混淆器做的事情一样,只不过是手动做。简单的就是改名和修改逻辑,修改逻辑这个也可以把一些条件替换为使用扔Exception的方式,执行路径更难理解。故意滥用设计模式,可以让结构更复杂。或者利用线程/异步也能让情况变得复杂。
复杂的可以把关键方法的 IL 抽离出来,以二进制形式作为资源嵌入程序集,调用的时候通过这段 IL 生成动态方法执行。如果加密是黑色,这种做法算是灰色的吧(相当于部分代码是以编译后的形式存在)。更白一点的是把代码转换成对应的表达式形式,表达式编译后相当于原方法(相当于部分代码以AST中间形式存在)。我更倾向于主体部分表达式化,一些简单的地方 emit il,可以美其名曰为了实现一些动态功能和提高效率。
代码存在的形态无非是:字符串(可以再分为直接编译和运行时编译)、 AST、 IL、 汇编(机器指令)。改名和修改逻辑都是还在原始形态下,其它形态会更难以理解。此外,还有一些与 clr 和操作系统相关的办法就不提了。
不过其实我觉得,如果你能把上面说的这些做出效果,那应该没必要纠结什么裁员了,还不如花时间去找份更好的工作。说到底,长远看来,自己的能力才是自己利益的最好保证。
------解决思路----------------------
我记得几个月前非技术区有篇精品帖,就是“教”人怎么干这种事的。。。
------解决思路----------------------
http://bbs.****.net/topics/390951593
------解决思路----------------------
那种所谓的“代码命名规范”方面的开玩笑的文章不但无法利用,而且也不会为你的程序加入任何“质量陷阱”。
毕竟,用vs重命名某个变量易如反掌,这是vs的代码重构机制上就自动完成的(它会自动根据整个解决方案的词法分析去自动改名)。所以给变量改名,基本上是耽误自己的智慧的大脑。
这种事想太多了,就伤害了自己。不用想太多,只要任性地想干什么就干什么算了,如果你怂了那就别干,不要想太多。现在你的公司已经不给你太多时间去正常地想问题了。
------解决思路----------------------
我也想找这个来着ww
------解决思路----------------------
“后来人看不懂代码或数据”?!估计这样的代码或数据你也会看起来很费劲了。
------解决思路----------------------
单位又要裁员了,2014年新年前夕,把整个企划全砍了,一分钱的单方解除劳动合同的补贴也不给,年后这几个月,每个月都要裁员一批人,各个部门倒班来,一分补贴不给。人事部门找挨刀的员工谈话,要么发送到本市的其他县市,要么降工资,逼着员工自动离职,这样就可以避免赔偿。
小弟我最近听到风了,我工资有点高了(青岛地区.net10年经验给6000还算高),打算要弄我了。开始在背地后里找小孩编译我的代码了(我是vb)。
代码可以给,数据库结构可以给,这些都是无条件的给,公司拥有版权。但是不能拿人当猴子耍,不给赔偿,清水捞银子。
现在源代码在我手里,数据库也由我控制,我不想加密,加密不给解密方法是犯罪。所以我就想问问,有什么办法能让后来人看不懂我的代码,看不懂我的数据库或里面的信息,看不懂是你技术问题,不是我不交接。
希望各位能理解我的苦衷,勿喷。
几年前我在青岛的时候做游戏开发,工作3年,也是.NET待遇比你高。
6000,10年还算高,只能说你水平不咋地,说完了,企业裁人你10年来混吃等死,等到了裁人那天才追悔莫及,
以前带的小弟,研究生吧,刚毕业了再黄岛的待遇是税后年薪7,8W左右,你自己想把
工作,更多的时候不能单纯只是看工资卡上每月增加的那点数字,把自己作为资产去投资,就要看整个行业的投资价值。现在只要行业选对了,给我月薪5000我也干,4000也干,3000也干。6000的工资说多也多,说不多也不多,我选择对了行业,给我的感觉就是挖到了金矿,一年到账工资不过8万,但是凭借我对这个新兴行业的理解,课余时间做软件和做培训,2014年给我带来10万左右的灰色收入。
说到法律问题,公司玩的很俏,现在个体户都是这样,劳动合同签订的工资就是最低工资,其他都算绩效,扣一半也不算违法。公司在青岛本地有无数个业务部,劳动合同的工作地点是市级,所以给你安排到同市的任何一个边缘的下属县市都不算违法,而且不去员工就是违法,公司就可以辞退了。
对我来说滚蛋就滚蛋,无非就是找下一个金矿,但是我真的咽不下这口气。他若先不仁我必后不义。
最近也没什么更好的办法,准备动手开始改数据库结构了和核心算法了,这样数据库一改,别人手里的程序就先废了。同样自己也要做好各种准备了。
那就来了2个新问题了,既然课业时间比上班时间应该是短的吧,
而你课业时间比上班赚的多,你可以考虑不上班了。
第二个问题
你不要去改数据库结构,你改了的话就属于违法了,你改名称就行了,改算法,让人看不懂,但是将来可能会用到的地方。
最后再注释里加一个公司过河拆桥,卑鄙无耻,新来的你看着办吧。
------解决思路----------------------
需要的话,我有人推荐
------解决思路----------------------
可以在你的代码里面写上注释
//等你把我的源码,全部编译出来,也就到公司把你辞职的时候了
------解决思路----------------------
你这个不了解,要C的代码,可以把C代码转成汇编代码,然在C代码里面调汇编,汇编里面调用C代码,美其名曰提高效率,哈哈,我真是太坏了……
------解决思路----------------------
我个人认为,你去找个更好的工作比费精神搞这个更好。而且你把代码搞得看不懂反而让后面的人觉得你技术不行,人老板解雇你是明智的。想想这多么得不偿失。往宽处走,路会越走越宽。
------解决思路----------------------
程序员何必欺负程序员呢
------解决思路----------------------
程序员 为何为难 程序员
你这么干能报复到公司么,要报复的对象够搞错了
百度一下:踢猫效应
有时间干这个,不如用这些时间找工作吧
------解决思路----------------------
怪可怜,难道这就是程序员的下场吗
------解决思路----------------------
随便吧。等你以后再去有事麻烦以前的同事(哪怕只是帮你把原本属于你自己正在看的一个文档考回来),你会知道人情冷暖了。所以现在也就看自己心情去干吧。
------解决思路----------------------
感觉楼主实在想挺多,被辞职是可以维权的
------解决思路----------------------
简单说,计划个时间线(TimeLine),画好关键时间段,每个时间段内的双方的“利损”关系
留下一些变动的余地,保证“恢复代码可工作状态”
.NET版本不同造成的代码兼容问题之类的
------解决思路----------------------
代码混淆也许可以帮你。。。。
------解决思路----------------------
楼主你不会玩?
你把其中一个工程或某个控件库单独编译一下 改成与市面上商业软件名称,命名空间一样的DLL 就成了。
------解决思路----------------------
代码看不懂很简单,多余空格去掉,没有任何的备注,说明。谁会去看这样的鸟代码。不过这样做值得吗,
------解决思路----------------------
一个类里面方法名全部一样 dosomething 然后用参数区分开来 这这样没人愿意维护你的代码了
------解决思路----------------------
一般逻辑复杂一些的代码,根本就不需要加密,没有注释就是加密了
------解决思路----------------------
这就是去大公司和小公司的区别吗,时刻担心被裁,而不是充实自己。
------解决思路----------------------
ls讲大义什么的都是妇人之仁,这个时候就要快刀斩乱麻,核心算法设置时间效应,两个月一过,工资,什么的都交接完毕,没把柄在原公司手上了,算法不行了,老板来求你了,这个时候你就想怎么搞就怎么搞了。
------解决思路----------------------
代码混淆一下,但对于有耐心的人来说没什么卵用。真有用的是滥用设计模式,加上滥用继承。一个类继承5层基本上就能让人崩溃了。
------解决思路----------------------
去掉所有注释。sql改成各种扯犊子的查询。
瞎注释。注释写文言文,或者写 中文,英文以外的文字,比如,日语,汉语,阿拉伯语等等。
------解决思路----------------------
把代码写的牛x一点,别人就不是很容易看懂了。
------解决思路----------------------
我只是个学c++的学生,我虽然不会.net,但对于你的问题,我想应该是不难的,楼主既然有十年工作经验,想必对于代码中的技术难点也是非常精通,代码可以写的具有可阅读性,也可以写的像天书。