新闻  |   论坛  |   博客  |   在线研讨会
(转)单片机编程之后门程序
tvb2058 | 2009-05-15 08:46:20    阅读:4083   发布文章

早在2000年附近 那会儿偶初中快毕业了吧 刚听说电脑(偶们那里穷)。就传说电脑里面的程序有后门 说外国怎么怎么就可以操作

当时唬的一愣一愣的 再后来大约02年 我们那边互联网盛行 开了很多网吧 当时旷课除了CS外也到是在网上打听了下所谓的啥叫后门(当时好像没有百度,用的是搜狐)也没闹明白 感觉网上说的黑客啦 红客啦 好像就是某国科幻电影里面的那些用枪指着脑袋就能在1分种内而且一般是最后1秒能解开某银行密码的人 至于怎么解的 一般是屏幕先出点 提示框 写着Enter Password 然后一边按键盘一边出汗 按几秒后回车 然后就是滴滴滴 说Err 然后再按 直到最后一秒 过于神话。始终没闹明白

 

    后来经过所谓的“高等教育”倒是稍微琢磨清楚一点所谓的后门 大学老师绝对不会专门将这个东西的 直到参加了工作看过某师哥的一个程序才算第一次经历了啥叫后门 同时也知道了单片机开发也有这么一说(同时十分期待那位高人那天能出点单片机病毒看看,反正单片机上网也是发展趋势)

事情是这个样子的 其实师哥的程序实现的功能很简单 就是AD采集点数据然后发给电脑 是给某工厂做的仓库安保系统

但是师哥的电路设计的还是很讲究的 又是1302 又是24C02的 当时客户其实并没有要求这些东西 师哥说的是很好听的啦

说 可以把故障的时间记录下来 然后再发给电脑之类的 当时偶深深的崇拜了师哥2个星期,跟着忙前忙后跑左跑右 师哥知道我是刚出来混 见我这么崇拜他很高兴 给了我这个项目的所有资料 并撂下话不会的可以随时问他。自然是好事 看师哥的程序(说一下哈用的正经是AT89S52和Keil C51)果然是很牛X

 

一看就知道得有几年“软件功底” 代码是能用一行解决 绝对不用2行 字母是能用1个绝对不用2个 注释是能不写的地方绝对不写 搞的我看了

十来行就晕了 还以为是乱码呢 但就是这短短的十来行让我对师哥做的项目起了兴趣

 

大家也都知道 看人家的程序都是从main()看起 主函数下面的正好是初始化部分 就是这部分和书上说的不一样 和老师当年讲的也不一样

 

请教师哥 师哥嘿嘿一笑说晚上下班后给我说 自然就是请客吃饭了 师哥说不能啥东西都信老师说的 老师说的是讲给学生听的 出来混的是需要自己琢磨些东西的 然后又说了说公司里面的一些政治斗争之类的 编程序赚不到钱的 做电路也赚不到钱的 反正是没说他的那段程序 我一看知道差不多该喝高了 打车给师哥送回去 师哥果然不低 车上就要磕头拜把兄弟 第二天下午 看师哥没啥事就又把师哥请到我的工位上了 师哥见我还在看他的程序 直接在下面第23行画了条线 让往下看就好 上面的不用看了 不方便在公司和我说(公司有规定 说什么程序 电路 资料等等和工资一样不能随便泄漏的)

 

     看来师哥是忘了昨天在他在车上的德行啦  只能硬着头皮自己看了 听师哥的先看下面的 下面的倒不是很难理解 注释也多(相对是多点) 函数名字和变量名字也大体能弄明白是个啥意思 之间也又请教了几次 师哥也详细的给我解释了

 

 

 

下班后回家想起了前面的代码 打开程序又看了一会儿 突然感觉 师哥是故意这样写的 就是不想让人看明白(绕晕的永远是人 不是机器 只要把自己当成机器用 再复杂的算法、代码也是很EZ的。这是偶老大的名言)

有一个函数明明是Time之类的函数名 但里面用的点Green,Red,Fuck之类的变量 而且读取的时间并没有派任何用处(正中师哥命脉 此地无银山百两) 反倒是打起了24C02的主意 当下起了兴趣 弄了张费纸 开始画流程图 基本弄到了后半夜2点(当时很很很很很很很很菜的)大体闹明白了一点。

 

   师哥指桑骂槐 函数名根本不是函数的功能

 

大体流程是这样的

 

上电—>师哥的初始化——>常规的初始化------>循环体

 

 

 

 

 

常规的初始化 其实那天下午就看的差不多了 有时钟的初始化 AD的初始化 通信的初始化之类 反正是很常规的功能 循环体内的比较复杂些 基

 

本也是读AD 然后比较 然后串口发走之类的

 

师哥的初始化 里面就比较有意思了 没有任何注释 并且是循环嵌套最多的一段

先是从24c02的8和13地址分别读出来个2个数 然后把这2个经过了一系列运算后比较了一下 如果比较错误的话 进入一个while(3)的死循环里面了(里面好像也有24c02操作但是当时没闹明白) 如果对的话又从 24c02的17地址和23地址读出2个数存了起来 然后读了下时间 把读回来的时间也运算了下然后和这2个数比较 比较错误的话 给24c02的8地址写进去个8 对的话有处理了堆好像没用的东西然后就完事了

 

不知道大家看了我上面的叙述能有闹明白的没 后来我是搞清楚啦

 

 原来 师哥玩了招阴的 一石二鸟 怪不得公司不让随便传阅程序 原来怕传出去招人骂

 

说说师哥的设计思想

 

1 为了保护自己的产品 (正义之举)24C02里面保存的数据肯定是有用的 但是在8和13地址保存的数据是作为校验用的 只有校验这2个数据之间的关系是正确的才说明 现在使用的24C02是合法的 才允许程序继续执行 假如因为任何原因这2个数据对不上号 就进入一个空的死循环了

 

2 为了保修 (出老千)该产品终身保修 但是免费1年 这是前提 上电从表片里面读出时间和24c02 17,23读出来的数比较 假如过了1年零几个

 

月的话 给8地址写了个数 正好破坏了 8地址原来的数 再下次重启动的时候 就会进入上面所说的死循环里面 然后要钱给修了

 

修的时候假装给打个折 用户那边很感动 然后给换个已经烧好的24C02 再把程序稍微改改说是升级一下 其实又是种下了2年的?弹 倒时人家修不修的再说啦

 

这下就知道师哥为啥要装1302和24c02了 这些个东西以及在这些个东西上下的心血终究是会赚回来的。

 

 

不知道我罗索明白没有 学会了这个 我也使用过几次 但是我是明目张胆的使用 没有向师哥用的好像是见不得人(好像我更无耻 做坏事居然还明目张胆的)

 

    曾给某学校网络中心做了一个自动测试网络电缆的项目(能出整个线缆分析报告) 做好后该校网络中心的一位负责人一直刁难 说做的不好 不如FLUKE(人家FLUKE 20多万的东西呢 ,这才几千快钱的买卖而且是处于研发阶段的东西)然后一直给改 改的老大对此项目已然是没有啥兴趣了(主要是改硬件花了钱啦,改软件老大不会心疼,累死程序员还能招到的。顺便说下偶们老大成功的关键原因-正是中国此行业很看重的原因。 硬件用最便宜的基本能实现功能就行 软件编最牛X的 所有硬件设计后的缺陷都用软件弥补 所以导致能用PIC做的绝对不用51 能用51的绝对不用AVR 在高级的我就不懂了;就51来说能用2条腿的绝对不用3条腿的 所以实际我用的大多是AT89C2051 我感觉它好像和AT89S52价钱差不多 老大说占的PCB面积不一样。 我晕)

其实偶老大一直是偶的偶像 坑蒙拐骗之类的 样样在行 同时为这个世界默哀1分钟。

后来听说好像是请客吃饭之类的把这个项目的尾款结了。(我啥都没吃到 晚饭方便面是我自己花钱买的 这就是编程小卒的命 )

 

老大说按最后的方案再做几个 然后准备卖掉 否则感觉是赔钱了 然后让我门准确的说是我做了一下扩充功能

代码可能就10来行的

在E2PROM里面找个几个没用的地址(ADD_A)准备使用

在找一个地址(ADD_B)写上8(发嘛)

每次上电后检测(ADD_B)是否为8 如果不是8就往这个地址里面写个8 然后提示是第一次开机需要配置系统之类的 进入配置菜单

什么对表啦 调零啦之类的事情

 

假如是8 就继续往下面执行

 

读出(ADD_A)里面的数字(5位数) 在末尾(个位)+1存回去

 

然后判断 这个数字是否大于2000 如果大于的话出现的是“已经超出使用期限 请联系XX公司 电话XX”然后死机

 

如果不大于 执行下面的正常处理

 

 

就这些个代码可起了大作用啦 东西白给了几个小的网络公司使用 好像是送出去30来个 大约过了3个月就有打电话来说不能用了 还有说是坏了

 

一问才知道正是我的那段代码终于被执行了 然后就是谈价钱 好在不是很贵 好像是1000来快钱 卖了20来个

 

然后说是拿回来升级其实是

把E2PROM清了

把2000改成了99900了

把那个“已经超出使用期限 请联系XX公司 电话XX”删掉(下次死机连个提示都没有了。)

但是增加了 些欢迎界面(128128的液晶嘛显得真的给人升级了)公司的LOGO和对方公司的LOGO还有几副Q图 (这些图也在E2PROM里面存的)写着偶老大的电话(强调一下 是偶老大的电话 )准备以后再次问候。

 

这就是在书上学习不到的24C02的功能 但在实际项目中基本很流行使用的功能 以后再有电器坏了的话也要想想到底是真的坏了吗?

 

尤其像某些手机啦之类的说保修一年 一年后真的坏了 是需要琢磨一下啦。

 

写在最后的是 真的电子爱好者想成为电子工程师不是仅仅抱着书看看就可以的 书中有这最基本的操作法则 但人是活的 程序是死的

真正的想成为工程师或者想升级自己的电子经验是需要找一个相关的职位干上一段时间的 正所谓一个成熟男人的标志是为了某项失业卑贱的活着 而不是英勇的?死。好了 偶又写了菜文一篇 欢迎拍砖

 

unifax

2009.4.13

unifax@163.com

参与讨论
登录后参与讨论
yuzhanhai5704  2009-07-14 20:43:21 

谢谢! 能将MOTOROLA单片机开发应用丛书的压缩密码给我吗? EMAIL:YUZHANHAI5704@TOM.COM

sothic  2009-05-31 00:03:43 

好东西哈!

推荐文章
最近访客