快讯:
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。
加密货币交易商Loomdart近期发布名为“A Bitcoin Investment Thesis(比特币投资论文)”的博客文章,文章对加密货币的未来进行了预测,将加密市场描述为“安乐死过山车”。同时有些人认为加密市场是一个弹跳球,弹起一次之后,随着失去动力而渐渐趋于平缓。
据中国通信工业协会区块链专业委员会网站,中国·平泉负氧离子产业园正式落成,河北平泉市人民政府曹佐金市长表示平泉将牢牢抓住国家区块链改革的历史机遇,全力以赴加快“生命材料链改试验区”建设,着力打造生命材料产业新城”。
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。
加密货币交易商Loomdart近期发布名为“A Bitcoin Investment Thesis(比特币投资论文)”的博客文章,文章对加密货币的未来进行了预测,将加密市场描述为“安乐死过山车”。同时有些人认为加密市场是一个弹跳球,弹起一次之后,随着失去动力而渐渐趋于平缓。
据中国通信工业协会区块链专业委员会网站,中国·平泉负氧离子产业园正式落成,河北平泉市人民政府曹佐金市长表示平泉将牢牢抓住国家区块链改革的历史机遇,全力以赴加快“生命材料链改试验区”建设,着力打造生命材料产业新城”。
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。
加密货币交易商Loomdart近期发布名为“A Bitcoin Investment Thesis(比特币投资论文)”的博客文章,文章对加密货币的未来进行了预测,将加密市场描述为“安乐死过山车”。同时有些人认为加密市场是一个弹跳球,弹起一次之后,随着失去动力而渐渐趋于平缓。
据中国通信工业协会区块链专业委员会网站,中国·平泉负氧离子产业园正式落成,河北平泉市人民政府曹佐金市长表示平泉将牢牢抓住国家区块链改革的历史机遇,全力以赴加快“生命材料链改试验区”建设,着力打造生命材料产业新城”。

比特币安全之一 木马钱包盗币原理分析

007龙少 2014-08-15 13:06 发布在 链头条 技术指南 25643

          最近比特币的安全问题频发,我本想找个盗取比特币的钱包进行分析,恰巧此时网友smtp在彩云比特论坛发帖揭示LTC木马钱包,并提供了LTC木马钱包样本,我就逆向了木马钱包的程序,分析了钱包盗取LTC的原理,盗取方式同样可以用于比特币及其他山寨币。

        他在彩云比特论坛发帖地址:http://www.cybtc.com/thread-9367-1-1.html,且提醒大家从官网下载钱包,切莫下载非官网(各种网盘)、没签名的钱包。 

一、原理分析

         LTC木马钱包盗取LTC的方式很简单,查看钱包的接收地址时,隐藏钱包的真实接收地址,显示黑客的LTC地址,当向此接收地址发送LTC时,发送的LTC自然就到了黑客的钱包中,永远到不了这个钱包中。

         验证过程很简单,先安装LTC木马钱包,创建新的接收地址,然后卸载木马钱包,安装LTC官网钱包,查看接收地址,两者显示的地址是不同的,官网钱包显示的是真实地址,木马钱包显示的是黑客的LTC地址。

         钱包中不存在黑客的LTC地址,所以导出私钥失败。官网钱包显示的LTC地址是存在的,可以导出私钥。通过命令dumpprivkey可以验证。

         LTC官网钱包下载地址:https://download.litecoin.org/litecoin-0.8.7.2/win32/litecoin-0.8.7.2-win32-setup.exe,需要科学上网。

         木马钱包显示的黑客的LTC接收地址: 1

         官网钱包显示的真实的LTC接收地址:2

         两相比较,可以看出显示的LTC接收地址是不同的。  

二、钱包显示接收地址

        LTC的代码是开源的,黑客下载了LTC代码,做了些修改,重新编译代码,把程序打包,放到网盘中提供下载,盗取网友的LTC

        显示钱包的接收地址,LTCBTC的代码相同,主要是在列表中显示LTC地址,木马钱包通过修改列表中要显示的LTC地址的字符串,来达到隐藏真实地址的目的。

        显示LTC接收地址,主要涉及到2个模块:程序加载时显示接收地址、创建新接收地址。在这里先简单讲解如何在地址列表中显示地址。

        钱包的接收地址保存在是类CWalletmapAddressBook中,接收地址列表是类AddressTablePrivQList<AddressTableEntry> cachedAddressTable控件。 

        1、程序加载时显示接收地址:

        litcoin-qt加载时,在main函数中,创建类WalletModel的对象,在类WalletModel的构造函数中创建类AddressTableModel的对象,然后调用类AddressTablePrivrefreshAddressTable函数。函数refreshAddressTable遍历钱包的地址簿,显示在接收地址列表中。 

         2、创建新接收地址:

        在创建新地址对话框确认后,交给类EditAddressDialogaccept函数处理,调用saveCurrentRow函数,调用类AddressTableModeladdRow函数添加新的地址行。

        在addRow函数中,调用类CWalletSetAddressBook函数设置地址簿。

        在SetAddressBook函数中,发送NotifyAddressBookChanged信号,在信号处理函数NotifyAddressBookChanged中,调用类WalletModel 的方法updateAddressBook更新地址簿。

        在updateAddressBook函数中,调用类AddressTableModelupdateEntry函数,再调用类AddressTablePrivupdateEntry函数,从而把新地址插入到地址列表中。 

三、黑客修改的代码

         木马钱包就是修改了类AddressTablePriv的函数refreshAddressTable、函数updateEntry,在显示、插入地址之前修改显示的接收地址。

        1、函数refreshAddressTable

         在调用函数cachedAddressTable.append之前,加入修改显示地址的代码。 

        2、函数updateEntry

         CT_NEW时,在调用函数parent->beginInsertRows之后,在调用函数cachedAddressTable.insert之前,加入修改显示地址的代码。 

         黑客的LTC地址一共10个,按照显示、插入地址的顺序,依次显示这10个地址,超过10个地址时,循环显示。

         在木马钱包中定义了一个数组,指向这10LTC地址。

         在木马钱包中定义了一个整形变量,标识地址索引,显示此索引指向的LTC地址,然后递增,当等于10时,重置为0

         这是用IDA定位到的地址数组及索引。3         实现这块功能对于码农来讲很简单。 

         黑客的LTC地址在钱包程序中不是明文保存的,而是经过加密的,显示LTC地址之前需要经过解密。通过逆向分析,其解密方法比较简单,反向操作即是加密。

        加密时,遍历LTC地址的34个字符,以0x32(‘2’)0x3C(‘<’)0x57(‘W’)3个字符为分界点,根据字符所在的不同范围,进行加减3操作。

        解密时进行反向操作。

        加解密规则:

  1. 当字符大于等于0x0,且小于等于0x32(‘2’),加密时字符加3,解密时字符减3。
  2. 当字符大于0x32(‘2’),且小于等于0x3C(‘<’),加密时字符加3,解密时字符减3。
  3. 当字符大于0x3C(‘<’),且小于等于0x57(‘W’),加密时字符减3,解密时字符加3。
  4. 当字符大于0x57(‘W’),加密时字符加3,解密时字符减3。
        规则⑴、⑵相同,可以合并,不明白为啥分开。 

         黑客的10LTC地址的明文、密文如下表:

LTC地址

加密后的LTC地址

LLaVR8Ab5gb6ybgjGxu9D2qisEgUCtJGvN 'IIdSO;>e8je9|ejmD{x<A5tlvBjR@wGDyK'
LNMuPLzrL2SpZrcwC8US5vQZ6cwC2CRaoL 'IKJxMI}uI5PsWufz@;RP8yNW9fz@5@OdrI'
LRD63cfZu7Wqt5JSvEC4PDrKByA7YkiZ4z 'IOA96fiWx:Ttw8GPyB@7MAuH?|>:VnlW7}'
LMVwz1nQAX56iF8TDMqiK2mJW6PKxrV7wZ 'IJSz}4qN>U89lC;QAJtlH5pGT9MH{uS:zW'
Ld1WBZyPAhdxsmQ8xeFgMrLuTNGwoXAmo8 'Ig4T?W|M>kg{vpN;{hCjJuIxQKDzrU>pr;'
LLHa7b4gz2U6BFKR9suztQQT35zbmoJbuF 'IIEd:e7j}5R9?CHO<vx}wNNQ68}eprGexC'
LfpkSrZWYAvyTWB1ko2k3njcZQjsQoeYaQ 'IisnPuWTV>y|QT?4nr5n6qmfWNmvNrhVdN'
LdgYTrsTcKmyF9nVB4uWSXUhbbXVJhPC9P 'IgjVQuvQfHp|C<qS?7xTPURkeeUSGkM@<M'
LU6QjPAEKnczUfhkxebpKYY6GQxTeXmoUY 'IR9NmM>BHqf}Rikn{hesHVV9DN{QhUprRV'
LMkNreKBaztuAetjx9o17WmhwwAB7T2gSf 'IJnKuhH?d}wx>hwm{<r4:Tpkzz>?:Q5jPi'
         IDA反汇编可以清晰的看到加密后的黑客的LTC接收地址。4

        这是用IDA逆向的解密地址的函数。5 

四、结束语

          由此分析得出,这个盗币的钱包还是比较简单的。因为比特币、莱特币的代码是开源的,逆向时比较容易定位关键点。但最主要的还是熟悉比特币的代码、命令,这样可以帮助分析问题、实现原理。

         如果您丢币了,或者被盗币了,可以发送相关的软件给我,简单描述被盗的过程,我可以帮忙分析,揭示出来以防止别人被盗,我的邮箱地址:007longshao@gmail.com

         稍后我会逐步分析黑客对各种钱包、矿场、交易平台等发起的攻击、钓鱼、木马等,写成连载的文章。 

作者:     龙少

BTC捐赠地址:1CeeGr858xjLJQB3a9uLawHAdZ2qWjzTGT 

 

评论(27)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • Alvin_14 2014-12-23
    加油 不错
  • w275618339 2014-09-26
    记得有个必读,你复制了比特币地址后 粘贴的是别人的地址,不知道怎么整的。。
  • w275618339 2014-09-24
    不错。。顶一个
  • parameta 2014-08-23
    社区需要更多龙少这种白帽黑客。 比特币钱包密码忘了,怎么破?只能暴力破解了?
    • 007龙少: 2014-08-25
      不是有家公司提供找回密码的有偿服务吗?国外的公司,你找找。 白帽黑客,我不是黑客,我是做安全的。
  • merry 2014-08-19
    非常感谢http://www.blockmeta.info/tx/a235873a768709883d242291ed2b089b3b2cda95859f9131f28e406c579f4da4
  • 比特币公益 2014-08-16
    传比特儿之后,黑客计划攻击余币宝和比特币钱罐,jua也在计划内……建议大家提币,中国比特币乱局……
  • 殆知阁 2014-08-16
    【【[吃惊][哈哈]瞧 窝果然是砖家。在最起初窝就知道这里会出问题[得意地笑]//@雨碎了喧嚣: //@惠施:@殆知阁 钱包果然是可以出问题的[嘻嘻]//@007龙少: 我这一阵刚刚确立了比特币安全的方向,且逆向分析了一个黑客钱包,中午刚刚在8btc上发表了技术分析文章,下午就出现黑客盗币勒索事件,老天
  • 雨碎了喧嚣 2014-08-16
    //@惠施:@殆知阁 钱包果然是可以出问题的[嘻嘻]//@007龙少: 我这一阵刚刚确立了比特币安全的方向,且逆向分析了一个黑客钱包,中午刚刚在8btc上发表了技术分析文章,下午就出现黑客盗币勒索事件,老天这是要干嘛?[吃惊]
  • 精品味穿衣达人 2014-08-16
    ✸✸✸✸ ~浏览:寻找不同:http://t.cn/RPYDWPu 薇可:http://t.cn/RPYDWPu
  • 惠施 2014-08-15
    @殆知阁 钱包果然是可以出问题的[嘻嘻]//@007龙少: 我这一阵刚刚确立了比特币安全的方向,且逆向分析了一个黑客钱包,中午刚刚在8btc上发表了技术分析文章,下午就出现黑客盗币勒索事件,老天这是要干嘛?[吃惊]
  • 007龙少 2014-08-15
    我这一阵刚刚确立了比特币安全的方向,且逆向分析了一个黑客钱包,中午刚刚在8btc上发表了技术分析文章,下午就出现黑客盗币勒索事件,老天这是要干嘛?[吃惊]
  • 007龙少 2014-08-15
    我这一阵刚刚确立了比特币安全的方向,且逆向分析了一个黑客钱包,中午刚刚在8btc上发表了技术分析文章,下午就出现黑客盗币勒索事件,老天这是要干嘛?
  • 007龙少 2014-08-15
    回复@比特天空网:也是安全的帮手[偷笑]
  • 007龙少 2014-08-15
    回复@比特天空网:也是安全的帮手
  • 比特天空网 2014-08-15
    看完此文,印证了一个观点:开源是黑客的好帮手。
  • 宋欢平 2014-08-15
    //@007龙少: 个人觉得BTC圈对安全不够重视,钱包、交易平台、矿场都是从自身加强安全,各自为战,势单力薄,如果有团队可以专注做比特币安全,给相关的BTC项目提供更加专业更加强悍的保护,那么被偷被盗的可能性将大大降低,这是我的想法,所以最近开始在微博频发BTC安全信息以及逆向黑客盗币钱包。
  • 007龙少 2014-08-15
    个人觉得BTC圈对安全不够重视,钱包、交易平台、矿场都是从自身加强安全,各自为战,势单力薄,如果有团队可以专注做比特币安全,给相关的BTC项目提供更加专业更加强悍的保护,那么被偷被盗的可能性将大大降低,这是我的想法,所以最近开始在微博频发BTC安全信息以及逆向黑客盗币钱包。
  • 王大锤子 2014-08-15
    码盲路过~
  • 007龙少 2014-08-15
    回复@BTC股票:这个可以根据黑客的LTC地址去查询,也许可以找到人。
  • 小丁他老爸 2014-08-15
    //@BTC股票: 能不能把黑客人肉出来?
  • 1
  • 2