总结一下这几天的学习成果

大多数exe和dll文件都是加了壳 (shell)的,什么是壳呢?壳就是一段保护exe或dll文件不能被轻易反汇编查看的代码。壳有很多种类,有以压缩为主的,有以保护为主的。我发布的这个联创完美版,他本身是没有加壳的,主要原因是这是以前的老版本,他们安全意识不重,所以就省事没有加壳,新发布的版本就加了壳,里面用的是ASProtect的壳。要反汇编一个exe文件,首先就要脱他的壳,把他的壳脱掉了你才能看到真实的汇编代码。

脱了壳以后你就可以用olldbg或者softice等动态调试软件来修改了,这里是最困难的,首先你如果要修改一个软件,你必须要找到你要修改的地方大概在哪里,一个很简单的程序很可能用上几万行的汇编代码的!所以必须要有一定的技巧才行。通常的技巧是在比较真实注册码与你输入的注册码是否一致时添加断点,然后查看寄存器或者内存,找到真实的注册码,而如果要修改软件的功能则难度可能更大些(这也要论凑巧不凑巧,比如这个联创吧,我看到的一个帖子上那位高手说只要bp MessageBoxA就可以找到检测网卡的代码段了,怎知他的版本好象和我们的不一样,他的版本是MessageBox警告,而我们徐师大的版本是在edit控件上调用SetWindowText来警告,但是请注意,SetWindowText这个函数应用的实在太多了,我们拨号时标题栏的字符是一直在变的,从“正在寻找接入服务器”到“正在连接”到等等等等,在这些地方断了实在太多,根本等不到那个“检测到多个网卡。。”的错误信息,而且你在正在连接的时候断点启动的话,你的连接就会一直停顿在那,所以我很是郁闷,我是一步步,步进的边理解他的代码的,那个苦啊,最讨厌那n多的跳转语句了,头晕。。。)不过黄天不负苦心人,还是让我找到那个重要的跳转语句了,直接将他改为jmp跳转到不出错分支执行,保存以后就ok了。

联接成功后弹出网页是因为他调用了ShellExecute函数来执行iexplorer来打开网页,将这部分代码用nop替换掉即可。无法更新的警告框也是因为调用了外部程序,即拨号软件安装目录下的update.exe,由于电信或者是联创根本就没有弄这个更新服务器,so你肯定会收到更新失败的警告对话框咯,貌似10分钟一次,真的很烦!也同调用iexplorer代码一样,用nop替换掉。这时所有的不完美就都修改完了!

做了这么一个东西发现,对程序进行反汇编不光要有良好的汇编知识也要有很好的WIN32API知识,里面很多CALL都是调用User32里的WIN32函数的,不知道这些函数的意思你是无法参透他的程序的意思的,比如你不理解ShellExecute函数的意思,那你肯定就无法知道如何祛除自动弹出网页和无法更新警告框。所以这东西很大一部分也需要运气的,有时你突然一下就能参透一大段汇编代码的意思,有时候你会掉进深不见底的跳转黑洞中,迷失方向。

联创很不负责人,如果你在拨号软件里保存了账户和密码的话,程序会把你的账户和密码信息保存到config.ini文件中(那很长一串字符就是你的账户和密码,你保存了多少账户和密码在程序的账户设置里,这里就保存多少。)。而且保存账户和密码的加密算法很简单,如果有心怀不鬼的黑客偷偷进入你的系统察看了你的config.ini文件以后,他自己就能破解出你的账户和密码,所以最好不要在账户设置里面保存密码(账户名保存在里面没事)。

以后可能想起来什么还会再更新的,现在就到这里为止了,还有好多事情要忙,想好好学学Linux,想好好看看汇编,想好好看看XNA,想好好看看软件工程,想好好看看数据库,想好好看看数据结构,想好好看看算法,想好好补补数学。。想好好玩玩游戏(我用DVD刻录收藏了n多的游戏大作,可惜除了极品飞车9,10我玩通关以外,其他都没有碰过)。。。想。。。想。。。想我怎么才能不用睡觉。。。。。答:变成僵尸(哎,我想玩生化危机4了)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值