突然想写一个vc6插件

现在太忙,明年3-4月动手。

 

概要:让vc6实现本地编辑代码,远程编译linux代码。

主要想法:当代码发生修改时,把文件发送到linux端;编译时,发送命令让linux端编译,把linux端编译的输出结果传送到本地。

细节:vc6 准备一种专门的工程模板,本地解析vc6的编译选项为对应的gcc编译选项。直接利用vc6对依赖关系的解析能力。

深入细节:使用2个长连接,一个传文件,一个传shell.使用已有的telnet 和ssh, ftp和sftp.

待定细节:可能考虑每当文件保存,就触发文件传送,也可以提供一个压缩传送的选项.linux端可以考虑准备一个服务端,给不支持telnet,ssh和ftp,sftp的linux端用。

长期演进路线:vc6和gdbserver完美配合,允许导入linux端的makefile(主要是vc很难本地搞定qt的 moc依赖判定).

 

主要思路来自http://www.magicunix.com/index_ch.html,这软件的思路非常好,可惜轮子做的太烂了,所以才触发我补胎的想法。

 

另外我也想告诉那些热衷于emacs&vim论战的人,每个人都有自己的习惯,而且有人既不喜欢vim,更不喜欢emacs.他们也不喜欢用使用这些编辑器来炫耀自己在从事和linux相关的工作。

 

码农工作效率的主要制约,几乎都不是编辑速度(不然软件公司应该雇佣一些廉价的打字员)。用十分古怪的输入习惯,换取仅仅那么一点点的输入速度提升,一点都不值得。可以说vi和vim完全都没找准80/20中的80.

 

visual assist的那个代码提示和自动补全,我还真没发现有任何别的工具可以媲美的。我甚至可以根据它提供的工具,写出一个自动生成doxygen格式的注释的脚本。

 

 

小进展:

1)DEVEDIT.PKG基址 + 0x0001B5F2  文件保存操作地址,可以用来触发文件传送。我的vc6上这个值是0x5081B5F2.被保存文件的路径,这个字符串的地址,保存在[ESP+8].(WriteFile的第2个参数,你懂的)

2)远程执行shell的功能,很轻松的通过匿名子管道重定向标准输入/输出搞定了。

3)stty -echo 关闭回显,避免管道重定向标准输入输出时,远程把输入的命令打印到本地的输出来(而且居然回显是逐字节的。。)

4)devshl.dll基址 + 0x00026C1D 向vcspawn发出调用命令。我的vc6上这个值是0x50026C1D. 调用命令地址在保存在[ESP- 0x24].这个调用命令作的事情包括:编译和链接,生成bsc文件。

5)给木马准备的超级api,VirtualProtect,我们可以进程内直接修改代码段啦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值