永发信息网

如何解码一个程序?

答案:2  悬赏:10  手机版
解决时间 2021-02-18 16:59
现在有一个exe程序,估计是用visual basic编写的,我想解码,需要怎么做呢?
急啊
最佳答案
如果你想解除源码是不可能的了,只可以通过反汇编得到汇编代码!具体你可以使用OD这个工具!
全部回答
#include //特殊寄存器头文件 #define c(x) (x*110592/120000) //是晶振值,为计数器计一下所需要的微秒数,120000为12m,110592为11.0592m sbit ir_pin=p3^3; //位声明,把p3.3/外部中断1的状态读到ir_pin中 unsigned char code led_tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳极数码显示码0-f. unsigned char code led_sel[]=; //位选编码 unsigned char led_buf[4]; //显示缓冲区 char led_index; //位选信号定义 unsigned char ir_buf[4]; //用于保存解码结果 //============================================================== //数码管扫描 timer0() interrupt 1 using 1 //定时器中断零程序 { th0=(65536-1000)/256; tl0=(65536-1000)%256; //定时器0设定约1000us中断一次,用于数码管扫描 p0=0xff; //数码管初始显示零 p2=led_sel[led_index]; //位选 p0=led_tab[led_buf[led_index]]; //段选 if(++led_index>3) led_index=0; //四个扫描完了,到第一个数码管 } //============================================================== unsigned int ir_get_low() //脉冲为低电平的时间 { tl1=0; th1=0; //为定时器1赋初值 tr1=1; //开启定时器1 while(!ir_pin && (th1&0x80)==0); //判断,如果p3.3口为低电平则执行tr1=0 tr1=0; //关闭定时器1 return th1*256+tl1; //返回th1*256+tl1的值 } //============================================================= unsigned int ir_get_high() //脉冲高电平时间 { tl1=0; th1=0; //为定时器1赋初值 tr1=1; //开启定时器1 while(ir_pin && (th1&0x80)==0); //判断,如果p3.3口为低电平则执行tr1=0 tr1=0; //关闭定时器1 return th1*256+tl1; //返回th1*256+tl1的值 } //============================================================== main() { unsigned int temp; char i,j; led_index=1; tmod=0x11; tl0=(65536-1000)%256; th0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描 ea=1; //开总中断 et0=1; //定时计数器0的开放控制位 tr0=1; //定时器0的运行控制位 led_buf[0]=0; led_buf[1]=0; led_buf[2]=0; led_buf[3]=0; //显示区设成0 do{ restart: while(ir_pin); //判断p3.3口 temp=ir_get_low(); //取脉冲为低电平的时间 if(tempc(9500)) continue; //引导脉冲低电平9000 temp=ir_get_high(); //取脉冲高电平时间 if(tempc(5000)) continue; //引导脉冲高电平4500 for(i=0;i<4;i++) //4个字节 for(j=0;j<8;j++) //每个字节8位 { temp=ir_get_low(); if(tempc(800)) goto restart; //根据编码格式,低电平小于0.2ms大于0.8ms视为无效电平,重新检测 temp=ir_get_high(); if(tempc(2000)) goto restart; //根据编码格式,低电平小于0.2ms大于2ms视为无效电平,重新检测 ir_buf[i]>>=1; //把ir_buf[i]右移一位,然后赋值给ir_buf[i] if(temp>c(1120)) ir_buf[i]|=0x80; //根据编码格式,如果电平大于1.12ms,则把0x80赋值给ir_buf[i] } led_buf[0]=ir_buf[2]&0xf; led_buf[1]=(ir_buf[2]/16)&0xf; led_buf[2]=ir_buf[3]&0xf; led_buf[3]=(ir_buf[3]/16)&0xf; //显示结果 }while(1); } 另外,站长团上有产品团购,便宜有保证
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
别人说你养狗三天,它记住你三年,你怎么回应他
五菱荣光车二档起步会息火,感觉没力,是不是
英文名可以和别人的重复吗,
阳光巴黎西南门地址在哪,我要去那里办事
wps表格全选在哪 左上角十字在哪呀
北镇路口有足疗吗
地下商场营业厅顶棚、墙面和地面装修材料的燃
兴安街/青檀北路(路口)地址在哪,我要去那里
找养鼠技术, 养殖食用老鼠,安全绿色老鼠,
雅思口语6.5 需要说到什么程度才算是及格?难
编程题a=0,a1=1,a2=a+a1,a3=a1+a2,a4=a2+a3,
根据答句及提示写问句.A:
更亨这个地址在什么地方,我要处理点事
寻求一首歌 开头是几句调: 哎嗨嗨哟,哎力来
DNF哪种鱼饵收益最高 dnf钓鱼活动鱼饵获得攻
推荐资讯
#儿时疑惑#为什么不能敲碗敲筷子?
电脑里永久删除的文件怎么复原
感慨刚结婚生子的人生说说
小牛在线到期后怎么操作
孔融让梨这篇课文主要讲的是什么事
彩源图文广告在什么地方啊,我要过去处理事情
上林县公安局交通警察大队城关中队地址在哪,
我比较瘦做什么发型好看
秀美电器家私地址有知道的么?有点事想过去
孩子的武侠梦,真的该被扼杀吗
刘营伍百姓餐厅在哪里啊,我有事要去这个地方
带有提手旁的字
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?