Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS22.98%
Net Worth
0.007USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.001SP
├── Own SP
0.125SP
└── Incoming Deleg
+4.876SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.125SP
Delegated Out
0.000SP
Delegation In
4.876SP
Effective Power
5.001SP
Reward SP (pending)
0.090SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "204.021886 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7939.637920 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namespecer
id897371
rank416,261
reputation1060555330
created2018-03-27T06:39:30
recovery_accountsteem
proxyNone
post_count4
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-04-12T12:44:30
last_root_post2018-04-12T12:44:30
last_vote_time2018-04-16T09:21:57
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares204.021886 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7939.637920 VESTS
reward_vesting_balance183.396503 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update1970-01-01T00:00:00
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 897371,
  "name": "specer",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7AAiSgtrgEBEYfjyQkt3naF4aeghRM3BpvpBSrbYZfUdN5UR4j",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7LnpXMWSHKcUUeski189h41z1u1Xf1a2TUq915VWoRLbRtLb5G",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5BYgk737PtE5YyP273Ms5nxFEuo6ryx9jzaai7vtv54xkjRM6V",
        1
      ]
    ]
  },
  "memo_key": "STM7ZWHrr9dk7RrbgSki7VNqGueNJKLcokoc9ekPncPoCYaXPM2iM",
  "json_metadata": "{}",
  "posting_json_metadata": "",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "1970-01-01T00:00:00",
  "created": "2018-03-27T06:39:30",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 4,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779086835
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779086835
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "183.396503 VESTS",
  "reward_vesting_steem": "0.090 STEEM",
  "vesting_shares": "204.021886 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7939.637920 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 90,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-04-12T12:44:30",
  "last_root_post": "2018-04-12T12:44:30",
  "last_vote_time": "2018-04-16T09:21:57",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 1060555330,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 416261
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.876 SP to @specer
2026/05/18 06:47:15
delegatorsteem
delegateespecer
vesting shares7939.637920 VESTS
Transaction InfoBlock #106151256/Trx 2df47621034efff89ca48facd7d0465eba5937ed
View Raw JSON Data
{
  "trx_id": "2df47621034efff89ca48facd7d0465eba5937ed",
  "block": 106151256,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-18T06:47:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "7939.637920 VESTS"
    }
  ]
}
steemdelegated 3.210 SP to @specer
2026/05/13 06:25:27
delegatorsteem
delegateespecer
vesting shares5227.427515 VESTS
Transaction InfoBlock #106007537/Trx 2efbbd66aa21a096061fb9b6e4a12e870f2c6339
View Raw JSON Data
{
  "trx_id": "2efbbd66aa21a096061fb9b6e4a12e870f2c6339",
  "block": 106007537,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-13T06:25:27",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "5227.427515 VESTS"
    }
  ]
}
steemdelegated 4.883 SP to @specer
2026/04/26 05:58:15
delegatorsteem
delegateespecer
vesting shares7952.153676 VESTS
Transaction InfoBlock #105518725/Trx 45f9cef9d9472c831d94e45eecd7530d67c9bc0f
View Raw JSON Data
{
  "trx_id": "45f9cef9d9472c831d94e45eecd7530d67c9bc0f",
  "block": 105518725,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-26T05:58:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "7952.153676 VESTS"
    }
  ]
}
steemdelegated 3.236 SP to @specer
2026/01/24 01:24:21
delegatorsteem
delegateespecer
vesting shares5268.974334 VESTS
Transaction InfoBlock #102872898/Trx ce082c2a7c57e630bd9ceb3d0c39af307953ab07
View Raw JSON Data
{
  "trx_id": "ce082c2a7c57e630bd9ceb3d0c39af307953ab07",
  "block": 102872898,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-24T01:24:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "5268.974334 VESTS"
    }
  ]
}
steemdelegated 3.337 SP to @specer
2024/12/17 20:33:57
delegatorsteem
delegateespecer
vesting shares5433.193531 VESTS
Transaction InfoBlock #91319106/Trx c95047f15bf0a626f46d0dcc25f260c5595e44c5
View Raw JSON Data
{
  "trx_id": "c95047f15bf0a626f46d0dcc25f260c5595e44c5",
  "block": 91319106,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T20:33:57",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "5433.193531 VESTS"
    }
  ]
}
steemdelegated 3.440 SP to @specer
2023/11/14 12:14:21
delegatorsteem
delegateespecer
vesting shares5602.327063 VESTS
Transaction InfoBlock #79873235/Trx ab9e2874d35bfaf565b449357f13a0d3b3aa0da8
View Raw JSON Data
{
  "trx_id": "ab9e2874d35bfaf565b449357f13a0d3b3aa0da8",
  "block": 79873235,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-14T12:14:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "5602.327063 VESTS"
    }
  ]
}
steemdelegated 5.244 SP to @specer
2023/09/22 10:59:36
delegatorsteem
delegateespecer
vesting shares8539.235849 VESTS
Transaction InfoBlock #78363585/Trx 66931007b5ff8abee63728d0bd1876cd6c66fcf7
View Raw JSON Data
{
  "trx_id": "66931007b5ff8abee63728d0bd1876cd6c66fcf7",
  "block": 78363585,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-22T10:59:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "8539.235849 VESTS"
    }
  ]
}
steemdelegated 5.380 SP to @specer
2022/11/03 18:22:36
delegatorsteem
delegateespecer
vesting shares8761.287287 VESTS
Transaction InfoBlock #69121231/Trx c3a44db76cd87427e28dad92a1ab6df577880db0
View Raw JSON Data
{
  "trx_id": "c3a44db76cd87427e28dad92a1ab6df577880db0",
  "block": 69121231,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T18:22:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "8761.287287 VESTS"
    }
  ]
}
steemdelegated 5.515 SP to @specer
2022/01/17 23:31:30
delegatorsteem
delegateespecer
vesting shares8981.394888 VESTS
Transaction InfoBlock #60824422/Trx 87469cc5f6de867225c1ce44f45ef3320071450b
View Raw JSON Data
{
  "trx_id": "87469cc5f6de867225c1ce44f45ef3320071450b",
  "block": 60824422,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T23:31:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "8981.394888 VESTS"
    }
  ]
}
specercustom json: notify
2022/01/10 02:41:39
required auths[]
required posting auths["specer"]
idnotify
json["setLastRead",{"date":"2022-01-10T02:41:37"}]
Transaction InfoBlock #60599029/Trx 67c74fdb2f160883a853a368d0e0bde4142cf5f6
View Raw JSON Data
{
  "trx_id": "67c74fdb2f160883a853a368d0e0bde4142cf5f6",
  "block": 60599029,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-10T02:41:39",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "specer"
      ],
      "id": "notify",
      "json": "[\"setLastRead\",{\"date\":\"2022-01-10T02:41:37\"}]"
    }
  ]
}
steemdelegated 5.629 SP to @specer
2021/06/14 06:40:51
delegatorsteem
delegateespecer
vesting shares9165.589176 VESTS
Transaction InfoBlock #54614714/Trx 7780b7547be8e5b6d0a6f33119236dc2d7cf0ce7
View Raw JSON Data
{
  "trx_id": "7780b7547be8e5b6d0a6f33119236dc2d7cf0ce7",
  "block": 54614714,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-14T06:40:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9165.589176 VESTS"
    }
  ]
}
steemdelegated 5.744 SP to @specer
2020/12/11 16:52:42
delegatorsteem
delegateespecer
vesting shares9353.011150 VESTS
Transaction InfoBlock #49361962/Trx 3af0be9adcac4929d3ab72c45a0f6242d55c2507
View Raw JSON Data
{
  "trx_id": "3af0be9adcac4929d3ab72c45a0f6242d55c2507",
  "block": 49361962,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T16:52:42",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9353.011150 VESTS"
    }
  ]
}
steemdelegated 1.174 SP to @specer
2020/12/06 10:28:06
delegatorsteem
delegateespecer
vesting shares1912.543513 VESTS
Transaction InfoBlock #49213475/Trx 8b379241e458fad38b37c397ed7dea63a1b15dfe
View Raw JSON Data
{
  "trx_id": "8b379241e458fad38b37c397ed7dea63a1b15dfe",
  "block": 49213475,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T10:28:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.747 SP to @specer
2020/12/05 20:30:33
delegatorsteem
delegateespecer
vesting shares9359.219004 VESTS
Transaction InfoBlock #49197048/Trx d17dd635ee1df8f66562907f7fc0f1978f527b4e
View Raw JSON Data
{
  "trx_id": "d17dd635ee1df8f66562907f7fc0f1978f527b4e",
  "block": 49197048,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T20:30:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9359.219004 VESTS"
    }
  ]
}
steemdelegated 1.179 SP to @specer
2020/11/03 03:38:00
delegatorsteem
delegateespecer
vesting shares1920.017158 VESTS
Transaction InfoBlock #48271921/Trx 53981421e76c4386ec0aa42a4a44c7d4849918b2
View Raw JSON Data
{
  "trx_id": "53981421e76c4386ec0aa42a4a44c7d4849918b2",
  "block": 48271921,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-03T03:38:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.872 SP to @specer
2020/05/09 11:31:45
delegatorsteem
delegateespecer
vesting shares9562.024363 VESTS
Transaction InfoBlock #43223814/Trx 2443ebb26611280a1f39a75f96c50ff3ed72daa1
View Raw JSON Data
{
  "trx_id": "2443ebb26611280a1f39a75f96c50ff3ed72daa1",
  "block": 43223814,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T11:31:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9562.024363 VESTS"
    }
  ]
}
steemdelegated 1.200 SP to @specer
2020/05/08 15:59:45
delegatorsteem
delegateespecer
vesting shares1953.311140 VESTS
Transaction InfoBlock #43200932/Trx 3f9105043475c341252b3597aff9dbc99108d7b0
View Raw JSON Data
{
  "trx_id": "3f9105043475c341252b3597aff9dbc99108d7b0",
  "block": 43200932,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T15:59:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
steemdelegated 5.971 SP to @specer
2019/07/31 09:58:15
delegatorsteem
delegateespecer
vesting shares9723.811133 VESTS
Transaction InfoBlock #35140418/Trx 5f92ed88249c912ec25a1e3655604a4a4bd30fee
View Raw JSON Data
{
  "trx_id": "5f92ed88249c912ec25a1e3655604a4a4bd30fee",
  "block": 35140418,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-07-31T09:58:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9723.811133 VESTS"
    }
  ]
}
2019/03/27 07:28:12
parent authorspecer
parent permlinkrsa
authorsteemitboard
permlinksteemitboard-notify-specer-20190327t072811000z
title
bodyCongratulations @specer! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@specer/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@specer) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=specer)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steem/@steemitboard/3-years-on-steem-happy-birthday-the-distribution-of-commemorative-badges-has-begun"><img src="https://steemitimages.com/64x128/http://u.cubeupload.com/arcange/BG6u6k.png"></a></td><td><a href="https://steemit.com/steem/@steemitboard/3-years-on-steem-happy-birthday-the-distribution-of-commemorative-badges-has-begun">3 years on Steem - The distribution of commemorative badges has begun!</a></td></tr><tr><td><a href="https://steemit.com/steem/@steemitboard/happy-birthday-the-steem-blockchain-is-running-for-3-years"><img src="https://steemitimages.com/64x128/http://u.cubeupload.com/arcange/BG6u6k.png"></a></td><td><a href="https://steemit.com/steem/@steemitboard/happy-birthday-the-steem-blockchain-is-running-for-3-years">Happy Birthday! The Steem blockchain is running for 3 years.</a></td></tr></table> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #31514111/Trx 7d4519fe6a15ce26d6bef5da9687d8e8006e3dfa
View Raw JSON Data
{
  "trx_id": "7d4519fe6a15ce26d6bef5da9687d8e8006e3dfa",
  "block": 31514111,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-03-27T07:28:12",
  "op": [
    "comment",
    {
      "parent_author": "specer",
      "parent_permlink": "rsa",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-specer-20190327t072811000z",
      "title": "",
      "body": "Congratulations @specer! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@specer/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@specer) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=specer)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steem/@steemitboard/3-years-on-steem-happy-birthday-the-distribution-of-commemorative-badges-has-begun\"><img src=\"https://steemitimages.com/64x128/http://u.cubeupload.com/arcange/BG6u6k.png\"></a></td><td><a href=\"https://steemit.com/steem/@steemitboard/3-years-on-steem-happy-birthday-the-distribution-of-commemorative-badges-has-begun\">3 years on Steem - The distribution of commemorative badges has begun!</a></td></tr><tr><td><a href=\"https://steemit.com/steem/@steemitboard/happy-birthday-the-steem-blockchain-is-running-for-3-years\"><img src=\"https://steemitimages.com/64x128/http://u.cubeupload.com/arcange/BG6u6k.png\"></a></td><td><a href=\"https://steemit.com/steem/@steemitboard/happy-birthday-the-steem-blockchain-is-running-for-3-years\">Happy Birthday! The Steem blockchain is running for 3 years.</a></td></tr></table>\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 6.093 SP to @specer
2018/08/14 09:48:00
delegatorsteem
delegateespecer
vesting shares9922.419294 VESTS
Transaction InfoBlock #25057080/Trx 14af9d14d58397074c333bbb95bdf47d8dd71525
View Raw JSON Data
{
  "trx_id": "14af9d14d58397074c333bbb95bdf47d8dd71525",
  "block": 25057080,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-14T09:48:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "9922.419294 VESTS"
    }
  ]
}
steemdelegated 18.540 SP to @specer
2018/08/04 23:06:33
delegatorsteem
delegateespecer
vesting shares30190.715905 VESTS
Transaction InfoBlock #24785154/Trx 96f17fbd425de5cb8f5e27c40d0313dc37ee7b9e
View Raw JSON Data
{
  "trx_id": "96f17fbd425de5cb8f5e27c40d0313dc37ee7b9e",
  "block": 24785154,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-04T23:06:33",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "30190.715905 VESTS"
    }
  ]
}
specerremoved vote from (0.00%) @specer / rsa
2018/05/15 07:58:48
voterspecer
authorspecer
permlinkrsa
weight0 (0.00%)
Transaction InfoBlock #22446284/Trx 20f70d68d52070951246f5077eeb9f19185af2f5
View Raw JSON Data
{
  "trx_id": "20f70d68d52070951246f5077eeb9f19185af2f5",
  "block": 22446284,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-05-15T07:58:48",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "rsa",
      "weight": 0
    }
  ]
}
specerremoved vote from (0.00%) @specer / 56g5wz
2018/04/24 08:06:42
voterspecer
authorspecer
permlink56g5wz
weight0 (0.00%)
Transaction InfoBlock #21841890/Trx 81c8454ee7357206da324f8a1855b2b08da92816
View Raw JSON Data
{
  "trx_id": "81c8454ee7357206da324f8a1855b2b08da92816",
  "block": 21841890,
  "trx_in_block": 43,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-24T08:06:42",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "56g5wz",
      "weight": 0
    }
  ]
}
specerremoved vote from (0.00%) @specer / reveal-1-6-1
2018/04/24 08:06:42
voterspecer
authorspecer
permlinkreveal-1-6-1
weight0 (0.00%)
Transaction InfoBlock #21841890/Trx e7ec5dd84ebe2943919b4d1f7764237feb362422
View Raw JSON Data
{
  "trx_id": "e7ec5dd84ebe2943919b4d1f7764237feb362422",
  "block": 21841890,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-24T08:06:42",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "reveal-1-6-1",
      "weight": 0
    }
  ]
}
specerremoved vote from (0.00%) @specer / barsoom
2018/04/24 08:06:36
voterspecer
authorspecer
permlinkbarsoom
weight0 (0.00%)
Transaction InfoBlock #21841888/Trx 2e0c8b156e0362e65eee1944f1bc8c712de178e4
View Raw JSON Data
{
  "trx_id": "2e0c8b156e0362e65eee1944f1bc8c712de178e4",
  "block": 21841888,
  "trx_in_block": 46,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-24T08:06:36",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "barsoom",
      "weight": 0
    }
  ]
}
specerreceived 0.113 SP author reward for @specer / rsa
2018/04/19 12:44:30
authorspecer
permlinkrsa
sbd payout0.000 SBD
steem payout0.000 STEEM
vesting payout183.396503 VESTS
Transaction InfoBlock #21703991/Virtual Operation #16
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 21703991,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 16,
  "timestamp": "2018-04-19T12:44:30",
  "op": [
    "author_reward",
    {
      "author": "specer",
      "permlink": "rsa",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "183.396503 VESTS"
    }
  ]
}
specerupvoted (100.00%) @specer / rsa
2018/04/16 09:21:57
voterspecer
authorspecer
permlinkrsa
weight10000 (100.00%)
Transaction InfoBlock #21613556/Trx 2a14f96d856fe851b3edff5eb9d751868a83a254
View Raw JSON Data
{
  "trx_id": "2a14f96d856fe851b3edff5eb9d751868a83a254",
  "block": 21613556,
  "trx_in_block": 32,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-16T09:21:57",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "rsa",
      "weight": 10000
    }
  ]
}
xiaoshirleyupvoted (100.00%) @specer / rsa
2018/04/13 02:52:51
voterxiaoshirley
authorspecer
permlinkrsa
weight10000 (100.00%)
Transaction InfoBlock #21519389/Trx f7f04a619ad3fae44523d89a871d89ddc9fedadd
View Raw JSON Data
{
  "trx_id": "f7f04a619ad3fae44523d89a871d89ddc9fedadd",
  "block": 21519389,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-13T02:52:51",
  "op": [
    "vote",
    {
      "voter": "xiaoshirley",
      "author": "specer",
      "permlink": "rsa",
      "weight": 10000
    }
  ]
}
specerpublished a new post: rsa
2018/04/13 02:05:51
parent author
parent permlinkblind-signature
authorspecer
permlinkrsa
title基于RSA的盲签名原理以及其数学证明
body@@ -5227,20 +5227,18 @@ ;&amp; r -%E4%B8%8En%E4%BA%92%E8%B4%A8 +%E2%8A%A5n &amp;&a
json metadata{"tags":["blind-signature","math","rsa","encrypt"],"links":["https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js","https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi","https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)","http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html","https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21518449/Trx 267371ff4631545a2ea8db0ee30bdfbee4f9300d
View Raw JSON Data
{
  "trx_id": "267371ff4631545a2ea8db0ee30bdfbee4f9300d",
  "block": 21518449,
  "trx_in_block": 91,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-13T02:05:51",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "blind-signature",
      "author": "specer",
      "permlink": "rsa",
      "title": "基于RSA的盲签名原理以及其数学证明",
      "body": "@@ -5227,20 +5227,18 @@\n ;&amp; r\n-%E4%B8%8En%E4%BA%92%E8%B4%A8\n+%E2%8A%A5n\n  &amp;&a\n",
      "json_metadata": "{\"tags\":[\"blind-signature\",\"math\",\"rsa\",\"encrypt\"],\"links\":[\"https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js\",\"https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi\",\"https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)\",\"http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html\",\"https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
bueupvoted (100.00%) @specer / rsa
2018/04/12 13:22:00
voterbue
authorspecer
permlinkrsa
weight10000 (100.00%)
Transaction InfoBlock #21503175/Trx dedb9eca9febc995c80169245d8ac5a9e1609b31
View Raw JSON Data
{
  "trx_id": "dedb9eca9febc995c80169245d8ac5a9e1609b31",
  "block": 21503175,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T13:22:00",
  "op": [
    "vote",
    {
      "voter": "bue",
      "author": "specer",
      "permlink": "rsa",
      "weight": 10000
    }
  ]
}
hr1upvoted (0.02%) @specer / rsa
2018/04/12 13:14:24
voterhr1
authorspecer
permlinkrsa
weight2 (0.02%)
Transaction InfoBlock #21503023/Trx d82987a58b8216c1a886d35ad5182935aa900ca4
View Raw JSON Data
{
  "trx_id": "d82987a58b8216c1a886d35ad5182935aa900ca4",
  "block": 21503023,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T13:14:24",
  "op": [
    "vote",
    {
      "voter": "hr1",
      "author": "specer",
      "permlink": "rsa",
      "weight": 2
    }
  ]
}
specerupvoted (100.00%) @specer / barsoom
2018/04/12 12:48:45
voterspecer
authorspecer
permlinkbarsoom
weight10000 (100.00%)
Transaction InfoBlock #21502510/Trx 6a8ae6f8ce77f80e06bde401138a9114a078f22b
View Raw JSON Data
{
  "trx_id": "6a8ae6f8ce77f80e06bde401138a9114a078f22b",
  "block": 21502510,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:48:45",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "barsoom",
      "weight": 10000
    }
  ]
}
specerremoved vote from (0.00%) @specer / barsoom
2018/04/12 12:48:30
voterspecer
authorspecer
permlinkbarsoom
weight0 (0.00%)
Transaction InfoBlock #21502505/Trx aa3ccad6f9d7886503ff33c3c290b07ee82218db
View Raw JSON Data
{
  "trx_id": "aa3ccad6f9d7886503ff33c3c290b07ee82218db",
  "block": 21502505,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:48:30",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "barsoom",
      "weight": 0
    }
  ]
}
specerremoved vote from (0.00%) @specer / rsa
2018/04/12 12:48:06
voterspecer
authorspecer
permlinkrsa
weight0 (0.00%)
Transaction InfoBlock #21502497/Trx b9cc3950b70a544f3156deb681e75a991d45be13
View Raw JSON Data
{
  "trx_id": "b9cc3950b70a544f3156deb681e75a991d45be13",
  "block": 21502497,
  "trx_in_block": 40,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:48:06",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "rsa",
      "weight": 0
    }
  ]
}
specerupvoted (100.00%) @specer / rsa
2018/04/12 12:47:30
voterspecer
authorspecer
permlinkrsa
weight10000 (100.00%)
Transaction InfoBlock #21502485/Trx f2a739c942ba27007d326dbd71ce0166a2144d04
View Raw JSON Data
{
  "trx_id": "f2a739c942ba27007d326dbd71ce0166a2144d04",
  "block": 21502485,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:47:30",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "rsa",
      "weight": 10000
    }
  ]
}
specerupdated options for rsa
2018/04/12 12:44:30
authorspecer
permlinkrsa
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #21502425/Trx 90de0a680df98409b52b694836f1f4a9a083d3d6
View Raw JSON Data
{
  "trx_id": "90de0a680df98409b52b694836f1f4a9a083d3d6",
  "block": 21502425,
  "trx_in_block": 66,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:44:30",
  "op": [
    "comment_options",
    {
      "author": "specer",
      "permlink": "rsa",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
specerpublished a new post: rsa
2018/04/12 12:44:30
parent author
parent permlinkblind-signature
authorspecer
permlinkrsa
title基于RSA的盲签名原理以及其数学证明
body<div id='write' class = 'is-mac'><p>&nbsp;</p><h1>准备资料</h1><ul><li><a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a></li><li><a href='https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi'>取模运算规则</a></li><li><a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)'>欧拉定理</a></li><li><a href='http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html'>RSA算法原理</a></li></ul><p>&nbsp;</p><h2>资料提炼</h2><ol start='' ><li><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>可以知道,当一个明文<code>m</code>经过盲化、签名,最后再去盲的操作后的最终结果为:</p><blockquote>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n</h1></blockquote><p><em><code>m</code>为明文</em></p><p><em><code>r</code>为随机数</em></p><p><em><code>n</code>和<code>e</code>组成公钥,<code>n</code>和<code>d</code>组成私钥,根据RSA加密算法定义可知:<code>e</code>和<code>d</code>满足:ed % φ(n) = 1</em></p><p><em>r<sup>-1</sup>为r对于n的模反元素,满足:(r<sup>-1</sup>r) % n = 1。</em></p></li><li><p>从<a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)'>欧拉定理</a>得到公式(a与n互质)</p><blockquote><p>a<sup>𝜑(n)</sup> % n = 1</p></blockquote></li><li><p>从<a href='https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi'>取模运算规则</a>中列出以下对于本次证明有用的公式:</p><table><thead><tr><th style='text-align:left;' >说明</th><th style='text-align:left;' >公式</th><th style='text-align:center;' >编号</th></tr></thead><tbody><tr><td style='text-align:left;' >结合律</td><td style='text-align:left;' >((a*b) % n * c) % n = (a * (b*c) % n) % n</td><td style='text-align:center;' >1</td></tr><tr><td style='text-align:left;' >模结合律</td><td style='text-align:left;' >a<sup>b</sup> % n = ((a % n)<sup>b</sup>) % n</td><td style='text-align:center;' >2</td></tr><tr><td style='text-align:left;' >乘法分配律</td><td style='text-align:left;' >(a * b) % n = (a % n * b % n) % n</td><td style='text-align:center;' >3</td></tr></tbody></table></li></ol><h1>证明过程</h1><p>由盲签名的原理可知,我们需要证明:</p><blockquote><p>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n 等价于 m<sup>d</sup> % n</p></blockquote><p>((((m(r<sup>e</sup> % n)) %n)<sup>d</sup> %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式2</p><p>= (((m(r<sup>e</sup> % n))<sup>d</sup> % n)r<sup>-1</sup>) % n </p><p>= (((m<sup>d</sup> * (r<sup>e</sup> % n)<sup>d</sup>) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (((m<sup>d</sup>%n * (r<sup>e</sup> % n)<sup>d</sup> %n) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式2</p><p>= ((((m<sup>d</sup> %n) * (r<sup>ed</sup> %n)) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (((m<sup>d</sup> * r<sup>ed</sup>) %n) * r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式1</p><p>= (m<sup>d</sup> * (r<sup>ed</sup> r<sup>-1</sup>) %n) % n</p><p>&nbsp;</p><p>即需要证明 (r<sup>ed</sup> r<sup>-1</sup>) %n = 1,将已知条件 ed = k * φ(n) + 1代入有:</p><p>(r<sup>ed</sup> r<sup>-1</sup>) %n</p><p>= (r<sup>kφ(n)+1</sup> r<sup>-1</sup>) %n</p><p>=(r<sup>kφ(n)</sup> * rr<sup>-1</sup>) %n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (r<sup>kφ(n)</sup>%n *(rr<sup>-1</sup>)%n) %n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模反元素的定义</p><p>= (r<sup>kφ(n)</sup>%n * 1) %n</p><p>= ((r<sup>φ(n)</sup> …… r<sup>φ(n)</sup>) %n ) %n </p><p>&nbsp;</p><p>设r<sup>φ(n)</sup>=p,p%n=q,则有:</p><p>((r<sup>φ(n)</sup> …… r<sup>φ(n)</sup>) %n ) %n </p><p>= ((p …… p) %n ) %n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3的变形</p><p>= ((q(q(q(……(q*q) %n……) %n) %n) %n) %n</p><p>&nbsp;</p><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>第40行至第47行可知,<code>r</code>与<code>n</code>互质,满足欧拉定理。则有r<sup>φ(n)</sup>%n=1,即q=1,原式得证。</p><p>&nbsp;</p><h1>盲签原理</h1><p>为什么我们要证明</p><blockquote><p>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n 等价于 m<sup>d</sup> % n</p></blockquote><p>因为根据RSA加解密过程,我们知道,加密过程为:</p><blockquote><p>c = m<sup>e</sup> % n</p></blockquote><p>解密过程为:</p><blockquote><p>m = c<sup>d</sup> % n</p></blockquote><p>&nbsp;</p><p>我们传给服务器的是盲化后的内容,即:</p><blockquote><p>(m(r<sup>e</sup> % n)) % n</p></blockquote><p>服务器用私钥将这个内容做加密操作,然后我们再将加密后的内容做去盲处理就拿到了服务器对原文的加密结果。其他人就可以用公钥来校验这个结果。</p><p>&nbsp;</p><h1>安全性</h1><p>我们来看看交给服务器的盲化后的字串:</p><blockquote><p>(m(r<sup>e</sup> % n)) % n</p></blockquote><p>式子里总共有四个未知量:m、r、e、n,服务器只知道e和n,没有r求不出m。</p><p>&nbsp;</p><p>再来考虑一下r被穷举的难度有多大呢?</p><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>第40行至第47行可知(尤其是其中的第41行),r的选取需满足以下要求:</p><blockquote><p>1 &lt; r &amp;&amp; r &lt; min(n, 2<sup>80</sup>) &amp;&amp; r与n互质 &amp;&amp; r ∈ N</p></blockquote><p>现在的RSA算法中的n一般都是1024位,那么r就是小于2<sup>80</sup>且与n互质的正整数。</p><p>&nbsp;</p><p>那这样的数有多少个呢?</p><p>根据<a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0'>资料</a>我们知道小于n且与n互质的正整数的个数叫做<strong>欧拉函数</strong>,写作<strong>φ(n)</strong>。在RSA算法里,p、q是任意两个质数,φ(n)满足下面的条件:</p><blockquote><p>n = pq</p><p>φ(n) = (p-1)(q-1)</p></blockquote><p>当n足够大时,并假设p、q亦足够大(事实上p、q也确实足够大),那么φ(n)取其二次方项:</p><blockquote><p>φ(n) = (p-1)(q-1) = pq - p - q + 1≈ pq = n</p></blockquote><p>所以可知小于n且与n互质的数大致是成均匀分布,那么满足条件的r的个数大约是2<sup>80</sup></p><p>所以r被穷举的难度取决于r的随机范围。</p></div>
json metadata{"tags":["blind-signature","math","rsa","encrypt"],"links":["https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js","https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi","https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)","http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html","https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21502425/Trx 90de0a680df98409b52b694836f1f4a9a083d3d6
View Raw JSON Data
{
  "trx_id": "90de0a680df98409b52b694836f1f4a9a083d3d6",
  "block": 21502425,
  "trx_in_block": 66,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-12T12:44:30",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "blind-signature",
      "author": "specer",
      "permlink": "rsa",
      "title": "基于RSA的盲签名原理以及其数学证明",
      "body": "<div  id='write'  class = 'is-mac'><p>&nbsp;</p><h1>准备资料</h1><ul><li><a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a></li><li><a href='https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi'>取模运算规则</a></li><li><a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)'>欧拉定理</a></li><li><a href='http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html'>RSA算法原理</a></li></ul><p>&nbsp;</p><h2>资料提炼</h2><ol start='' ><li><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>可以知道,当一个明文<code>m</code>经过盲化、签名,最后再去盲的操作后的最终结果为:</p><blockquote>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n</h1></blockquote><p><em><code>m</code>为明文</em></p><p><em><code>r</code>为随机数</em></p><p><em><code>n</code>和<code>e</code>组成公钥,<code>n</code>和<code>d</code>组成私钥,根据RSA加密算法定义可知:<code>e</code>和<code>d</code>满足:ed % φ(n) = 1</em></p><p><em>r<sup>-1</sup>为r对于n的模反元素,满足:(r<sup>-1</sup>r) % n = 1。</em></p></li><li><p>从<a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)'>欧拉定理</a>得到公式(a与n互质)</p><blockquote><p>a<sup>𝜑(n)</sup> % n = 1</p></blockquote></li><li><p>从<a href='https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi'>取模运算规则</a>中列出以下对于本次证明有用的公式:</p><table><thead><tr><th style='text-align:left;' >说明</th><th style='text-align:left;' >公式</th><th style='text-align:center;' >编号</th></tr></thead><tbody><tr><td style='text-align:left;' >结合律</td><td style='text-align:left;' >((a*b) % n * c) % n = (a * (b*c) % n) % n</td><td style='text-align:center;' >1</td></tr><tr><td style='text-align:left;' >模结合律</td><td style='text-align:left;' >a<sup>b</sup> % n = ((a % n)<sup>b</sup>) % n</td><td style='text-align:center;' >2</td></tr><tr><td style='text-align:left;' >乘法分配律</td><td style='text-align:left;' >(a * b) % n = (a % n * b % n) % n</td><td style='text-align:center;' >3</td></tr></tbody></table></li></ol><h1>证明过程</h1><p>由盲签名的原理可知,我们需要证明:</p><blockquote><p>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n 等价于 m<sup>d</sup> % n</p></blockquote><p>((((m(r<sup>e</sup> % n)) %n)<sup>d</sup> %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式2</p><p>= (((m(r<sup>e</sup> % n))<sup>d</sup> % n)r<sup>-1</sup>) % n \t\t\t\t</p><p>= (((m<sup>d</sup> * (r<sup>e</sup> % n)<sup>d</sup>) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (((m<sup>d</sup>%n * (r<sup>e</sup> % n)<sup>d</sup> %n) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式2</p><p>= ((((m<sup>d</sup> %n) * (r<sup>ed</sup> %n)) %n)r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (((m<sup>d</sup>  * r<sup>ed</sup>) %n) * r<sup>-1</sup>) % n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式1</p><p>= (m<sup>d</sup>  * (r<sup>ed</sup> r<sup>-1</sup>) %n) % n</p><p>&nbsp;</p><p>即需要证明 (r<sup>ed</sup> r<sup>-1</sup>) %n = 1,将已知条件 ed = k * φ(n) + 1代入有:</p><p>(r<sup>ed</sup> r<sup>-1</sup>) %n</p><p>= (r<sup>kφ(n)+1</sup> r<sup>-1</sup>) %n</p><p>=(r<sup>kφ(n)</sup> * rr<sup>-1</sup>) %n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3</p><p>= (r<sup>kφ(n)</sup>%n *(rr<sup>-1</sup>)%n) %n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模反元素的定义</p><p>= (r<sup>kφ(n)</sup>%n * 1) %n</p><p>= ((r<sup>φ(n)</sup> …… r<sup>φ(n)</sup>) %n ) %n\t\t\t\t\t</p><p>&nbsp;</p><p>设r<sup>φ(n)</sup>=p,p%n=q,则有:</p><p>((r<sup>φ(n)</sup> …… r<sup>φ(n)</sup>) %n ) %n </p><p>= ((p …… p) %n ) %n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公式3的变形</p><p>= ((q(q(q(……(q*q) %n……) %n) %n) %n) %n</p><p>&nbsp;</p><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>第40行至第47行可知,<code>r</code>与<code>n</code>互质,满足欧拉定理。则有r<sup>φ(n)</sup>%n=1,即q=1,原式得证。</p><p>&nbsp;</p><h1>盲签原理</h1><p>为什么我们要证明</p><blockquote><p>((((m(r<sup>e</sup> % n)) % n)<sup>d</sup> %n)r<sup>-1</sup>) % n 等价于 m<sup>d</sup> % n</p></blockquote><p>因为根据RSA加解密过程,我们知道,加密过程为:</p><blockquote><p>c = m<sup>e</sup> % n</p></blockquote><p>解密过程为:</p><blockquote><p>m = c<sup>d</sup> % n</p></blockquote><p>&nbsp;</p><p>我们传给服务器的是盲化后的内容,即:</p><blockquote><p>(m(r<sup>e</sup> % n)) % n</p></blockquote><p>服务器用私钥将这个内容做加密操作,然后我们再将加密后的内容做去盲处理就拿到了服务器对原文的加密结果。其他人就可以用公钥来校验这个结果。</p><p>&nbsp;</p><h1>安全性</h1><p>我们来看看交给服务器的盲化后的字串:</p><blockquote><p>(m(r<sup>e</sup> % n)) % n</p></blockquote><p>式子里总共有四个未知量:m、r、e、n,服务器只知道e和n,没有r求不出m。</p><p>&nbsp;</p><p>再来考虑一下r被穷举的难度有多大呢?</p><p>通过阅读<a href='https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js'>盲签名源码</a>第40行至第47行可知(尤其是其中的第41行),r的选取需满足以下要求:</p><blockquote><p>1 &lt; r &amp;&amp; r &lt; min(n, 2<sup>80</sup>) &amp;&amp; r与n互质 &amp;&amp; r ∈ N</p></blockquote><p>现在的RSA算法中的n一般都是1024位,那么r就是小于2<sup>80</sup>且与n互质的正整数。</p><p>&nbsp;</p><p>那这样的数有多少个呢?</p><p>根据<a href='https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0'>资料</a>我们知道小于n且与n互质的正整数的个数叫做<strong>欧拉函数</strong>,写作<strong>φ(n)</strong>。在RSA算法里,p、q是任意两个质数,φ(n)满足下面的条件:</p><blockquote><p>n = pq</p><p>φ(n) = (p-1)(q-1)</p></blockquote><p>当n足够大时,并假设p、q亦足够大(事实上p、q也确实足够大),那么φ(n)取其二次方项:</p><blockquote><p>φ(n) = (p-1)(q-1) = pq - p - q + 1≈ pq = n</p></blockquote><p>所以可知小于n且与n互质的数大致是成均匀分布,那么满足条件的r的个数大约是2<sup>80</sup></p><p>所以r被穷举的难度取决于r的随机范围。</p></div>",
      "json_metadata": "{\"tags\":[\"blind-signature\",\"math\",\"rsa\",\"encrypt\"],\"links\":[\"https://github.com/kevinejohn/blind-signatures/blob/master/rsablind.js\",\"https://baike.baidu.com/link?url=9P_8pS64n4GHB0Vk9w7WP0KeYh_-VS5zJ0k_GKr_ovXFjxwxvgP9ES2aJxuA1jcAlbypJE0NwvDXh_Hi3rVlvWv0HTlqmcZmpsE62jjj3J_Nnp84kL1_u3UCql8ZxFDi\",\"https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)\",\"http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html\",\"https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
specerupvoted (100.00%) @specer / barsoom
2018/04/08 07:00:51
voterspecer
authorspecer
permlinkbarsoom
weight10000 (100.00%)
Transaction InfoBlock #21380365/Trx 0cbee1bed2fec59a8f30caefcbcde979ad409078
View Raw JSON Data
{
  "trx_id": "0cbee1bed2fec59a8f30caefcbcde979ad409078",
  "block": 21380365,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T07:00:51",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "barsoom",
      "weight": 10000
    }
  ]
}
specerupvoted (100.00%) @specer / reveal-1-6-1
2018/04/08 07:00:48
voterspecer
authorspecer
permlinkreveal-1-6-1
weight10000 (100.00%)
Transaction InfoBlock #21380364/Trx 2e56835ba881e5b6ec2ebc2caee07e8208d7c8e7
View Raw JSON Data
{
  "trx_id": "2e56835ba881e5b6ec2ebc2caee07e8208d7c8e7",
  "block": 21380364,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T07:00:48",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "reveal-1-6-1",
      "weight": 10000
    }
  ]
}
specerupvoted (100.00%) @specer / 56g5wz
2018/04/08 06:58:48
voterspecer
authorspecer
permlink56g5wz
weight10000 (100.00%)
Transaction InfoBlock #21380324/Trx 6dd4f51e27e753729baa8f889b5390bc1ffbcd66
View Raw JSON Data
{
  "trx_id": "6dd4f51e27e753729baa8f889b5390bc1ffbcd66",
  "block": 21380324,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T06:58:48",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "specer",
      "permlink": "56g5wz",
      "weight": 10000
    }
  ]
}
specerpublished a new post: barsoom
2018/04/04 06:49:48
parent author
parent permlinkcrack
authorspecer
permlinkbarsoom
titleBarsoom 2.5 破解
body# STEP0 使用版的**Barsoom 2.5**已经到期了,为了温故下破解流程,自己动手搞一下。先是从弹出的过期窗口入手: ![2858ED1F-0019-49E7-8B30-76B603B65FF6.png](https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png) # STEP1 打开`Hopper`搜索提示语里其中一个`buying`单词,发现有个`AppLicenseChecker`类: ![E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png](https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png) # STEP2 找到这个类,发现有个叫`isLicenseActivated`方法,感觉有戏,置反里面的判断语句: ![6A609377-52F3-4B7C-9804-5CA39AA59EEE.png](https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png) # STEP3 接着导出、重签名、备份,重启Barsoom,成功: ![CB2CE7CC-6792-4815-BD47-422A132B62DB.png](https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png)
json metadata{"tags":["crack"],"image":["https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png","https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png","https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png","https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21264956/Trx b8a5fb3076d7a5b7ae6c96d3387cbef2a2bf59d7
View Raw JSON Data
{
  "trx_id": "b8a5fb3076d7a5b7ae6c96d3387cbef2a2bf59d7",
  "block": 21264956,
  "trx_in_block": 43,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-04T06:49:48",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "crack",
      "author": "specer",
      "permlink": "barsoom",
      "title": "Barsoom 2.5 破解",
      "body": "# STEP0 \n使用版的**Barsoom 2.5**已经到期了,为了温故下破解流程,自己动手搞一下。先是从弹出的过期窗口入手:\n![2858ED1F-0019-49E7-8B30-76B603B65FF6.png](https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png)\n\n\n# STEP1\n打开`Hopper`搜索提示语里其中一个`buying`单词,发现有个`AppLicenseChecker`类:\n![E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png](https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png)\n\n\n# STEP2\n找到这个类,发现有个叫`isLicenseActivated`方法,感觉有戏,置反里面的判断语句:\n  ![6A609377-52F3-4B7C-9804-5CA39AA59EEE.png](https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png)\n\n\n# STEP3\n接着导出、重签名、备份,重启Barsoom,成功:\n![CB2CE7CC-6792-4815-BD47-422A132B62DB.png](https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png)",
      "json_metadata": "{\"tags\":[\"crack\"],\"image\":[\"https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png\",\"https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png\",\"https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png\",\"https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
specerupdated options for barsoom
2018/04/04 06:49:03
authorspecer
permlinkbarsoom
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #21264941/Trx ab6076834d323ef78cbec2475e5305c018fe5686
View Raw JSON Data
{
  "trx_id": "ab6076834d323ef78cbec2475e5305c018fe5686",
  "block": 21264941,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-04T06:49:03",
  "op": [
    "comment_options",
    {
      "author": "specer",
      "permlink": "barsoom",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
specerpublished a new post: barsoom
2018/04/04 06:49:03
parent author
parent permlinkcrack
authorspecer
permlinkbarsoom
title破解Barsoom
body# STEP0 使用版的**Barsoom 2.5**已经到期了,为了温故下破解流程,自己动手搞一下。先是从弹出的过期窗口入手: ![2858ED1F-0019-49E7-8B30-76B603B65FF6.png](https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png) # STEP1 打开`Hopper`搜索提示语里其中一个`buying`单词,发现有个`AppLicenseChecker`类: ![E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png](https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png) # STEP2 找到这个类,发现有个叫`isLicenseActivated`方法,感觉有戏,置反里面的判断语句: ![6A609377-52F3-4B7C-9804-5CA39AA59EEE.png](https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png) # STEP3 接着导出、重签名、备份,重启Barsoom,成功: ![CB2CE7CC-6792-4815-BD47-422A132B62DB.png](https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png)
json metadata{"tags":["crack"],"image":["https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png","https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png","https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png","https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21264941/Trx ab6076834d323ef78cbec2475e5305c018fe5686
View Raw JSON Data
{
  "trx_id": "ab6076834d323ef78cbec2475e5305c018fe5686",
  "block": 21264941,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-04T06:49:03",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "crack",
      "author": "specer",
      "permlink": "barsoom",
      "title": "破解Barsoom",
      "body": "# STEP0 \n使用版的**Barsoom 2.5**已经到期了,为了温故下破解流程,自己动手搞一下。先是从弹出的过期窗口入手:\n![2858ED1F-0019-49E7-8B30-76B603B65FF6.png](https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png)\n\n\n# STEP1\n打开`Hopper`搜索提示语里其中一个`buying`单词,发现有个`AppLicenseChecker`类:\n![E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png](https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png)\n\n\n# STEP2\n找到这个类,发现有个叫`isLicenseActivated`方法,感觉有戏,置反里面的判断语句:\n  ![6A609377-52F3-4B7C-9804-5CA39AA59EEE.png](https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png)\n\n\n# STEP3\n接着导出、重签名、备份,重启Barsoom,成功:\n![CB2CE7CC-6792-4815-BD47-422A132B62DB.png](https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png)",
      "json_metadata": "{\"tags\":[\"crack\"],\"image\":[\"https://steemitimages.com/DQmUSnCHwoUpsuhPwibBDs9X51AQryKZjP9aZS3BMZcidHT/2858ED1F-0019-49E7-8B30-76B603B65FF6.png\",\"https://steemitimages.com/DQmNRxV3EFwxEvYYMjcqgynn9bX1uAA6yUz17D69za2tmxH/E600C7FA-E046-439B-AB5B-1A61A12DD2A4.png\",\"https://steemitimages.com/DQmVYDZuu6XmsG1dGVmV4aCvmZXuJnNCLe1PXBfm15PnKEx/6A609377-52F3-4B7C-9804-5CA39AA59EEE.png\",\"https://steemitimages.com/DQmNfFQvmCghiAmLGz5VdpU2GBDBaTnYuKQnDQFeef2E3q6/CB2CE7CC-6792-4815-BD47-422A132B62DB.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
steemdelegated 18.665 SP to @specer
2018/03/30 19:19:18
delegatorsteem
delegateespecer
vesting shares30393.587117 VESTS
Transaction InfoBlock #21135972/Trx d5bb7f5a7c6e324d561212523d47758682bf5daf
View Raw JSON Data
{
  "trx_id": "d5bb7f5a7c6e324d561212523d47758682bf5daf",
  "block": 21135972,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-30T19:19:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "specer",
      "vesting_shares": "30393.587117 VESTS"
    }
  ]
}
2018/03/27 08:33:03
voterspecer
authorriensen
permlinksteem-ios-app-announcement-first-native-ios-app-released-approved-by-apple-beta-download-available
weight10000 (100.00%)
Transaction InfoBlock #21036684/Trx 1a446e08a630783489b6dcfc1110321c1826675f
View Raw JSON Data
{
  "trx_id": "1a446e08a630783489b6dcfc1110321c1826675f",
  "block": 21036684,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T08:33:03",
  "op": [
    "vote",
    {
      "voter": "specer",
      "author": "riensen",
      "permlink": "steem-ios-app-announcement-first-native-ios-app-released-approved-by-apple-beta-download-available",
      "weight": 10000
    }
  ]
}
specerupdated options for reveal-1-6-1
2018/03/27 07:33:36
authorspecer
permlinkreveal-1-6-1
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #21035495/Trx e6e67f59ac0a5318e8245efceba9af9272fc4e31
View Raw JSON Data
{
  "trx_id": "e6e67f59ac0a5318e8245efceba9af9272fc4e31",
  "block": 21035495,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T07:33:36",
  "op": [
    "comment_options",
    {
      "author": "specer",
      "permlink": "reveal-1-6-1",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
specerpublished a new post: reveal-1-6-1
2018/03/27 07:33:36
parent author
parent permlinkcrack
authorspecer
permlinkreveal-1-6-1
titleReveal 1.6.1试用版破解技巧
body很多软件试用期结束后,通常都是会弹出一个对话框,然后告诉你试用期已经结束,底下再来两个按钮,一个是**退出**,另一个是**购买**。点退出就直接退出程序,点购买就浏览器跳转到他们官网的购买页面。由于该对话框强制获取了软件的焦点,所以不点任意一个按钮的话是没有办法做其他操作的。 很早以前使用的试用版Reveal就遇到了这个问题,当时心血来潮,想重新温习一下破解过程,决定自己动手试试。下面便是**Reveal 1.6.1**版本的破解过程: ## 绕过过期对话框逻辑 <br> 现在理清了问题,再来看有哪些方案可以绕过这个对话框: * 因为有试用期,那么启动软件后肯定有判断是否过期的逻辑: > 从用户沙盒里取出第一次使用软件的时间点,然后和当前的时间点做个差值,最后拿这个差值和试用期时间做个比较,然后根据比较结果判断是否过期。 所以我们的方案就是:反汇编后,猜测一些关键字:`trial`、`expire`等。通 过这些关键字搜索相应的可能函数,然后再在判断是否过期的`if-else`语句里将逻辑置反即可。 * 从弹出的过期对话框入手。之所以不能使用软件了,就是因为对话框吸引了焦点,所以我们只需要隐藏掉对话框即可。但是_用汇编写隐藏对话框_的难度太大,可以从展示对话框的逻辑那里置反即可。不过直接搜出展示逻辑不大可能,我们就先通过关键字找到该对话框的viewcontroller,然后在里面随便设个断点,然后启动调试,等跑到断点处时,查看调用堆栈,这样就能找到show这个过期view的逻辑在哪个函数里了,然后进那个函数将show的逻辑置反。虽然数据里依旧是过期的,但是却能和正常软件一样使用了。 我这里选择的是第2种方法,在`IBATrialModeReminderWindowController windowDidLoad`里面随便找一处设个断点。然后找到并将显示的`if`逻辑置反(`Alt`+`A`编辑汇编命令)。注意修改汇编代码的时候要保持byte位数与改之前一致,空出来的位置用`nop`填充,但是不能多出byte了,多了很容易就会导致软件直接crash。 ## 添加codesign <br> 改好过期逻辑后,`⌘+⇧+E`保存修改后的二进制文件。这时会弹出下面的提示: ![20934E1E-2F17-4550-AAD1-B5A5375F561C.png](https://steemitimages.com/DQmWBxAi8AoTRQJFnWhKSH43QtjGqqAjHEZRt3y5o3U5XBH/20934E1E-2F17-4550-AAD1-B5A5375F561C.png) 这里选择`否`,我们要自己添加一个`codesign`,先自己随便建一个根证书,`钥匙串访问` =\> `证书助理` =\> `创建证书`,然后按下图设置后一路`下一步`狂点。 ![4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png](https://steemitimages.com/DQmeYzstJpi7pn46XBFiekGtZvZYQgEnGPDPmE9AXi3QK8L/4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png) 后续具体操作可参照[这里](http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once/)。 证书弄好后,就要给我们新修改的文件加codesign了,打开终端,cd到新文件所在目录,然后执行 ```bash codesign -f -s gdb-cert Reveal ``` <br> 其中的`gdb-cert`就是上图创建证书的时候取的名字,`Reveal`就是你新生成的二进制文件的名字。 ## 绕过自身codesign验证 <br> codesign做好后,备份下原来的二进制文件,然后替换原来的。启动Reveal会弹出错误提示,说是codesign不对,然后直接退出了: ![8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png](https://steemitimages.com/DQmPFWKjp9YgKuiRMRcC1vbp8PvvYEd3SBaHuLB4GSEihLu/8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png) 这是因为Reveal做了自身验证,就是防止代码被更改,不过这个验证也是自己业务逻辑的验证,所以仿照第一步的方法,根据相关关键字搜索相关代码。我用的关键字是`codesign`,果然就搜到了一个名叫`IBAAppDelegate verifyCodeSignature`的函数: ![7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png](https://steemitimages.com/DQmWgC8v6djbb2gKyVoL8Juqw39C3WgW1FgP57pSyJTGEXg/7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png) 点进去根据伪代码能很轻松的就找到`if`逻辑: ![992C6075-1B39-4AC7-8307-B67358A2283B.png](https://steemitimages.com/DQmanuovuqsvEQxiyr8tGunb7uszBGoAhtsRjeSZSCEwnqP/992C6075-1B39-4AC7-8307-B67358A2283B.png) ![9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png](https://steemitimages.com/DQmPswVsMZeqQXFcfuCmKeE8BdBnE4F5cw7k7b1FTTptJV5/9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png) 可以置反`if`逻辑,不过我们这里更简单,直接`jmp`到最后: ![7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png](https://steemitimages.com/DQmU6xZPRJcaeKVTwiHzRgMF6FS1wQzEZ5pxiaf5N5A4B6Y/7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png) 刚好保持位数一致。 这下再导出、codesign、替换,最后运行OK。 其实绝大部分的试用软件都可以通过这种方法达到破解的目的,只要有足够的耐心、细心再加一点点的运气~
json metadata{"tags":["crack"],"image":["https://steemitimages.com/DQmWBxAi8AoTRQJFnWhKSH43QtjGqqAjHEZRt3y5o3U5XBH/20934E1E-2F17-4550-AAD1-B5A5375F561C.png","https://steemitimages.com/DQmeYzstJpi7pn46XBFiekGtZvZYQgEnGPDPmE9AXi3QK8L/4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png","https://steemitimages.com/DQmPFWKjp9YgKuiRMRcC1vbp8PvvYEd3SBaHuLB4GSEihLu/8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png","https://steemitimages.com/DQmWgC8v6djbb2gKyVoL8Juqw39C3WgW1FgP57pSyJTGEXg/7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png","https://steemitimages.com/DQmanuovuqsvEQxiyr8tGunb7uszBGoAhtsRjeSZSCEwnqP/992C6075-1B39-4AC7-8307-B67358A2283B.png","https://steemitimages.com/DQmPswVsMZeqQXFcfuCmKeE8BdBnE4F5cw7k7b1FTTptJV5/9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png","https://steemitimages.com/DQmU6xZPRJcaeKVTwiHzRgMF6FS1wQzEZ5pxiaf5N5A4B6Y/7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png"],"links":["http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once/"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21035495/Trx e6e67f59ac0a5318e8245efceba9af9272fc4e31
View Raw JSON Data
{
  "trx_id": "e6e67f59ac0a5318e8245efceba9af9272fc4e31",
  "block": 21035495,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T07:33:36",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "crack",
      "author": "specer",
      "permlink": "reveal-1-6-1",
      "title": "Reveal 1.6.1试用版破解技巧",
      "body": "很多软件试用期结束后,通常都是会弹出一个对话框,然后告诉你试用期已经结束,底下再来两个按钮,一个是**退出**,另一个是**购买**。点退出就直接退出程序,点购买就浏览器跳转到他们官网的购买页面。由于该对话框强制获取了软件的焦点,所以不点任意一个按钮的话是没有办法做其他操作的。\n\n很早以前使用的试用版Reveal就遇到了这个问题,当时心血来潮,想重新温习一下破解过程,决定自己动手试试。下面便是**Reveal 1.6.1**版本的破解过程:\n\n\n\n## 绕过过期对话框逻辑\n<br>\n\n现在理清了问题,再来看有哪些方案可以绕过这个对话框:\n\n* 因为有试用期,那么启动软件后肯定有判断是否过期的逻辑:\n\n   > 从用户沙盒里取出第一次使用软件的时间点,然后和当前的时间点做个差值,最后拿这个差值和试用期时间做个比较,然后根据比较结果判断是否过期。\n\n   所以我们的方案就是:反汇编后,猜测一些关键字:`trial`、`expire`等。通\t过这些关键字搜索相应的可能函数,然后再在判断是否过期的`if-else`语句里将逻辑置反即可。\n   \n\n * 从弹出的过期对话框入手。之所以不能使用软件了,就是因为对话框吸引了焦点,所以我们只需要隐藏掉对话框即可。但是_用汇编写隐藏对话框_的难度太大,可以从展示对话框的逻辑那里置反即可。不过直接搜出展示逻辑不大可能,我们就先通过关键字找到该对话框的viewcontroller,然后在里面随便设个断点,然后启动调试,等跑到断点处时,查看调用堆栈,这样就能找到show这个过期view的逻辑在哪个函数里了,然后进那个函数将show的逻辑置反。虽然数据里依旧是过期的,但是却能和正常软件一样使用了。\n\n我这里选择的是第2种方法,在`IBATrialModeReminderWindowController windowDidLoad`里面随便找一处设个断点。然后找到并将显示的`if`逻辑置反(`Alt`+`A`编辑汇编命令)。注意修改汇编代码的时候要保持byte位数与改之前一致,空出来的位置用`nop`填充,但是不能多出byte了,多了很容易就会导致软件直接crash。\n\n\n\n## 添加codesign\n<br>\n改好过期逻辑后,`⌘+⇧+E`保存修改后的二进制文件。这时会弹出下面的提示:\n![20934E1E-2F17-4550-AAD1-B5A5375F561C.png](https://steemitimages.com/DQmWBxAi8AoTRQJFnWhKSH43QtjGqqAjHEZRt3y5o3U5XBH/20934E1E-2F17-4550-AAD1-B5A5375F561C.png)\n\n这里选择`否`,我们要自己添加一个`codesign`,先自己随便建一个根证书,`钥匙串访问` =\\> `证书助理` =\\> `创建证书`,然后按下图设置后一路`下一步`狂点。\n![4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png](https://steemitimages.com/DQmeYzstJpi7pn46XBFiekGtZvZYQgEnGPDPmE9AXi3QK8L/4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png)\n\n后续具体操作可参照[这里](http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once/)。\n\n证书弄好后,就要给我们新修改的文件加codesign了,打开终端,cd到新文件所在目录,然后执行\n\n```bash\n codesign -f -s gdb-cert Reveal \n```\n<br>\n其中的`gdb-cert`就是上图创建证书的时候取的名字,`Reveal`就是你新生成的二进制文件的名字。\n\n\n\n## 绕过自身codesign验证\n<br>\ncodesign做好后,备份下原来的二进制文件,然后替换原来的。启动Reveal会弹出错误提示,说是codesign不对,然后直接退出了:\n![8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png](https://steemitimages.com/DQmPFWKjp9YgKuiRMRcC1vbp8PvvYEd3SBaHuLB4GSEihLu/8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png)\n\n这是因为Reveal做了自身验证,就是防止代码被更改,不过这个验证也是自己业务逻辑的验证,所以仿照第一步的方法,根据相关关键字搜索相关代码。我用的关键字是`codesign`,果然就搜到了一个名叫`IBAAppDelegate verifyCodeSignature`的函数:\n![7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png](https://steemitimages.com/DQmWgC8v6djbb2gKyVoL8Juqw39C3WgW1FgP57pSyJTGEXg/7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png)\n\n点进去根据伪代码能很轻松的就找到`if`逻辑:\n![992C6075-1B39-4AC7-8307-B67358A2283B.png](https://steemitimages.com/DQmanuovuqsvEQxiyr8tGunb7uszBGoAhtsRjeSZSCEwnqP/992C6075-1B39-4AC7-8307-B67358A2283B.png)\n\n![9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png](https://steemitimages.com/DQmPswVsMZeqQXFcfuCmKeE8BdBnE4F5cw7k7b1FTTptJV5/9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png)\n\n可以置反`if`逻辑,不过我们这里更简单,直接`jmp`到最后:\n![7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png](https://steemitimages.com/DQmU6xZPRJcaeKVTwiHzRgMF6FS1wQzEZ5pxiaf5N5A4B6Y/7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png)\n\n刚好保持位数一致。\n\n这下再导出、codesign、替换,最后运行OK。\n\n其实绝大部分的试用软件都可以通过这种方法达到破解的目的,只要有足够的耐心、细心再加一点点的运气~",
      "json_metadata": "{\"tags\":[\"crack\"],\"image\":[\"https://steemitimages.com/DQmWBxAi8AoTRQJFnWhKSH43QtjGqqAjHEZRt3y5o3U5XBH/20934E1E-2F17-4550-AAD1-B5A5375F561C.png\",\"https://steemitimages.com/DQmeYzstJpi7pn46XBFiekGtZvZYQgEnGPDPmE9AXi3QK8L/4ABC60C4-3B3F-468D-A902-B880F2B9DDA8.png\",\"https://steemitimages.com/DQmPFWKjp9YgKuiRMRcC1vbp8PvvYEd3SBaHuLB4GSEihLu/8AE2396D-0769-4686-A3DF-C6BB82AE56E8.png\",\"https://steemitimages.com/DQmWgC8v6djbb2gKyVoL8Juqw39C3WgW1FgP57pSyJTGEXg/7D9E70E9-C1DB-4168-ABDF-0F1386F636F5.png\",\"https://steemitimages.com/DQmanuovuqsvEQxiyr8tGunb7uszBGoAhtsRjeSZSCEwnqP/992C6075-1B39-4AC7-8307-B67358A2283B.png\",\"https://steemitimages.com/DQmPswVsMZeqQXFcfuCmKeE8BdBnE4F5cw7k7b1FTTptJV5/9032C90C-0DDF-461C-AEEA-7CFC1A41C2CA.png\",\"https://steemitimages.com/DQmU6xZPRJcaeKVTwiHzRgMF6FS1wQzEZ5pxiaf5N5A4B6Y/7F0DCDBC-154F-4B71-BF7B-29BBEECE42FC.png\"],\"links\":[\"http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once/\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
specerpublished a new post: 56g5wz
2018/03/27 07:07:54
parent author
parent permlinksecurity
authorspecer
permlink56g5wz
title记一次清除恶意脚本的过程
body@@ -1,7 +1,9 @@ -%E6%9C%80%E8%BF%91%E5%87%A0 +%E6%9F%90%E5%B9%B4%E7%9A%84%E6%9F%90%E4%B8%80 %E5%A4%A9%E5%8F%91%E7%8E%B0%E5%9C%A8
json metadata{"tags":["security"],"image":["https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png","https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png","https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png","https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png","https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png","https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png","https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png","https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png","https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21034981/Trx 4ea84ba4bdb393f0ac48789ffa8d7292ea61c0bd
View Raw JSON Data
{
  "trx_id": "4ea84ba4bdb393f0ac48789ffa8d7292ea61c0bd",
  "block": 21034981,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T07:07:54",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "specer",
      "permlink": "56g5wz",
      "title": "记一次清除恶意脚本的过程",
      "body": "@@ -1,7 +1,9 @@\n-%E6%9C%80%E8%BF%91%E5%87%A0\n+%E6%9F%90%E5%B9%B4%E7%9A%84%E6%9F%90%E4%B8%80\n %E5%A4%A9%E5%8F%91%E7%8E%B0%E5%9C%A8\n",
      "json_metadata": "{\"tags\":[\"security\"],\"image\":[\"https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png\",\"https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png\",\"https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png\",\"https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png\",\"https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png\",\"https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png\",\"https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png\",\"https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png\",\"https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
specerupdated options for 56g5wz
2018/03/27 07:06:45
authorspecer
permlink56g5wz
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #21034958/Trx 8ed97b5326bcd0eb8823235fc049aa8563c65218
View Raw JSON Data
{
  "trx_id": "8ed97b5326bcd0eb8823235fc049aa8563c65218",
  "block": 21034958,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T07:06:45",
  "op": [
    "comment_options",
    {
      "author": "specer",
      "permlink": "56g5wz",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
specerpublished a new post: 56g5wz
2018/03/27 07:06:45
parent author
parent permlinksecurity
authorspecer
permlink56g5wz
title记一次清除恶意脚本的过程
body最近几天发现在用chrome的时候遇到很诡异的问题,打开网页后,点击网页任意地方都会被重定向到其他页面,然后手动返回原网页又能正常使用。但是时间一长网页就会经常卡顿,是那种非正常的卡顿。chrome、safari、firefox都有这毛病,但是唯独canary没有。怀疑极有可能是有什么恶意脚本在作怪,因为canary属于小众浏览器就放过了。趁着快周末有时间,决心亲自动手找出毒瘤。 随便打开一个网页,发现在其body最后有这段代码: ![676F1182-1D9E-40C4-8313-C2619BFDC768.png](https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png) 在这里网页被嵌入了一个宽度100%、高度100%、不可见的带href的frame,难怪点击任意地方都会被重定向,为了满足好奇心,去看了下被转到哪了: ![81FC26D7-02EE-4153-8B95-8BC4C5A18841.png](https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png) 恩,是淘宝某店铺的页面… 现在需要找出这段代码是怎么被插进网页的。顺藤摸瓜,找到一堆相关的js脚本,其中看到这个: ![5245098E-D02A-45A5-9F11-60EE204CB217.png](https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png) 上图代码里写着的目标浏览器里并没有包含canary,或许这就解释了为啥其他浏览器都中招,唯独canary没事了吧。 接着往下走,发现了一大堆的js,它们环环相扣,链式地下载彼此,下图里的绝大多数都是最后恶意下载的脚本: ![9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png](https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png) 分析了半天,最终发现这堆脚本的鼻祖起源于这行代码: ![66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png](https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png) 这个`secure.surfbuyermac.com`也不知道是什么玩意,搞不懂是怎么插到页面里的,起初怀疑是浏览器的恶意插件导致的,于是停掉所有chrome、safari的插件,结果发现问题依旧存在。接着怀疑可能是电脑本身的恶意脚本导致的,于是调起万能的`Spotlight `: ![0A0EEAC1-4463-412C-BFDB-1451D028FB90.png](https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png) 去`Applications`瞧一眼: ![3087670C-9E9E-475E-B789-71F5024E4A22.png](https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png) 为了确认是不是它,再去终端看看有没有在自启动: ![FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png](https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png) 妈蛋,总算逮着你了!kill掉相关进程后,再打开网页,哈,整个世界都清净了~: ![449B2CB0-11E7-4B4F-8AA4-20BE40861640.png](https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png) 最后保管好那个`SurfBuyer`以后有时间拿来做样本好好研究研究。
json metadata{"tags":["security"],"image":["https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png","https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png","https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png","https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png","https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png","https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png","https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png","https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png","https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #21034958/Trx 8ed97b5326bcd0eb8823235fc049aa8563c65218
View Raw JSON Data
{
  "trx_id": "8ed97b5326bcd0eb8823235fc049aa8563c65218",
  "block": 21034958,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T07:06:45",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "specer",
      "permlink": "56g5wz",
      "title": "记一次清除恶意脚本的过程",
      "body": "最近几天发现在用chrome的时候遇到很诡异的问题,打开网页后,点击网页任意地方都会被重定向到其他页面,然后手动返回原网页又能正常使用。但是时间一长网页就会经常卡顿,是那种非正常的卡顿。chrome、safari、firefox都有这毛病,但是唯独canary没有。怀疑极有可能是有什么恶意脚本在作怪,因为canary属于小众浏览器就放过了。趁着快周末有时间,决心亲自动手找出毒瘤。\n\n随便打开一个网页,发现在其body最后有这段代码:\n![676F1182-1D9E-40C4-8313-C2619BFDC768.png](https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png)\n\n在这里网页被嵌入了一个宽度100%、高度100%、不可见的带href的frame,难怪点击任意地方都会被重定向,为了满足好奇心,去看了下被转到哪了:\n![81FC26D7-02EE-4153-8B95-8BC4C5A18841.png](https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png)\n恩,是淘宝某店铺的页面…\n\n现在需要找出这段代码是怎么被插进网页的。顺藤摸瓜,找到一堆相关的js脚本,其中看到这个:\n![5245098E-D02A-45A5-9F11-60EE204CB217.png](https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png)\n上图代码里写着的目标浏览器里并没有包含canary,或许这就解释了为啥其他浏览器都中招,唯独canary没事了吧。\n\n接着往下走,发现了一大堆的js,它们环环相扣,链式地下载彼此,下图里的绝大多数都是最后恶意下载的脚本:\n![9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png](https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png)\n\n分析了半天,最终发现这堆脚本的鼻祖起源于这行代码:\n![66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png](https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png)\n\n这个`secure.surfbuyermac.com`也不知道是什么玩意,搞不懂是怎么插到页面里的,起初怀疑是浏览器的恶意插件导致的,于是停掉所有chrome、safari的插件,结果发现问题依旧存在。接着怀疑可能是电脑本身的恶意脚本导致的,于是调起万能的`Spotlight `:\n![0A0EEAC1-4463-412C-BFDB-1451D028FB90.png](https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png)\n\n去`Applications`瞧一眼:\n![3087670C-9E9E-475E-B789-71F5024E4A22.png](https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png)\n\n为了确认是不是它,再去终端看看有没有在自启动:\n![FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png](https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png)\n\n妈蛋,总算逮着你了!kill掉相关进程后,再打开网页,哈,整个世界都清净了~:\n![449B2CB0-11E7-4B4F-8AA4-20BE40861640.png](https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png)\n\n最后保管好那个`SurfBuyer`以后有时间拿来做样本好好研究研究。",
      "json_metadata": "{\"tags\":[\"security\"],\"image\":[\"https://steemitimages.com/DQmdenMhA1tRsxtLByFxTrg5YsPFRLSQjoSarokvaJg3agy/676F1182-1D9E-40C4-8313-C2619BFDC768.png\",\"https://steemitimages.com/DQmPMWj1YpWfN9iHXhmAcVuJ9nYBz69memPcqD2KzrVX9xd/81FC26D7-02EE-4153-8B95-8BC4C5A18841.png\",\"https://steemitimages.com/DQmPCxn42WyYXFEKvq2jSPtMKeUEDWes52AP9rMC2drVx1D/5245098E-D02A-45A5-9F11-60EE204CB217.png\",\"https://steemitimages.com/DQmTyUXp67SMvoHV2a4NwW3P9JK4v2gnn34jZG8X3yM65jv/9F78F7D7-BFA1-44F7-8DCB-74A4948F15B6.png\",\"https://steemitimages.com/DQmceWgof6XwVEH4CNJ9BvSDy6g3XpSrTWFWm6weBAMxKjA/66F0A374-F1E3-4213-ADD9-BD5F11410E6C.png\",\"https://steemitimages.com/DQmTWvqF1LbxfRiMV3aRFfAa4EkfbXyMH9BzPQWNpbmAU3Z/0A0EEAC1-4463-412C-BFDB-1451D028FB90.png\",\"https://steemitimages.com/DQmTS84FfEGSXoWcJczQxvYdoEy1pJjW98tr6qCWaqyTPop/3087670C-9E9E-475E-B789-71F5024E4A22.png\",\"https://steemitimages.com/DQmRVZpDMmFqLihmjJPnK2YdUb4mRBLmL8gDMZZEe9QepHk/FE92A9BB-9CFF-4BDE-AE08-0058EE8D0220.png\",\"https://steemitimages.com/DQmUz88Yy1uH32byk5e2ZrBunAPPBrXpfWjZ5io7PQhS9yW/449B2CB0-11E7-4B4F-8AA4-20BE40861640.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
steemcreated a new account: @specer
2018/03/27 06:39:30
fee0.100 STEEM
delegation30690.000000 VESTS
creatorsteem
new account namespecer
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7AAiSgtrgEBEYfjyQkt3naF4aeghRM3BpvpBSrbYZfUdN5UR4j",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7LnpXMWSHKcUUeski189h41z1u1Xf1a2TUq915VWoRLbRtLb5G",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5BYgk737PtE5YyP273Ms5nxFEuo6ryx9jzaai7vtv54xkjRM6V",1]]}
memo keySTM7ZWHrr9dk7RrbgSki7VNqGueNJKLcokoc9ekPncPoCYaXPM2iM
json metadata{}
extensions[]
Transaction InfoBlock #21034413/Trx 5963fc939431858890ba0b6869222ff9effb7aa1
View Raw JSON Data
{
  "trx_id": "5963fc939431858890ba0b6869222ff9effb7aa1",
  "block": 21034413,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-27T06:39:30",
  "op": [
    "account_create_with_delegation",
    {
      "fee": "0.100 STEEM",
      "delegation": "30690.000000 VESTS",
      "creator": "steem",
      "new_account_name": "specer",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM7AAiSgtrgEBEYfjyQkt3naF4aeghRM3BpvpBSrbYZfUdN5UR4j",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM7LnpXMWSHKcUUeski189h41z1u1Xf1a2TUq915VWoRLbRtLb5G",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5BYgk737PtE5YyP273Ms5nxFEuo6ryx9jzaai7vtv54xkjRM6V",
            1
          ]
        ]
      },
      "memo_key": "STM7ZWHrr9dk7RrbgSki7VNqGueNJKLcokoc9ekPncPoCYaXPM2iM",
      "json_metadata": "{}",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
None
JSON METADATA
None
{
  "posting_json_metadata": {},
  "json_metadata": {}
}

Auth Keys

Owner
Single Signature
Public Keys
STM7AAiSgtrgEBEYfjyQkt3naF4aeghRM3BpvpBSrbYZfUdN5UR4j1/1
Active
Single Signature
Public Keys
STM7LnpXMWSHKcUUeski189h41z1u1Xf1a2TUq915VWoRLbRtLb5G1/1
Posting
Single Signature
Public Keys
STM5BYgk737PtE5YyP273Ms5nxFEuo6ryx9jzaai7vtv54xkjRM6V1/1
Memo
STM7ZWHrr9dk7RrbgSki7VNqGueNJKLcokoc9ekPncPoCYaXPM2iM
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7AAiSgtrgEBEYfjyQkt3naF4aeghRM3BpvpBSrbYZfUdN5UR4j",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7LnpXMWSHKcUUeski189h41z1u1Xf1a2TUq915VWoRLbRtLb5G",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5BYgk737PtE5YyP273Ms5nxFEuo6ryx9jzaai7vtv54xkjRM6V",
        1
      ]
    ]
  },
  "memo": "STM7ZWHrr9dk7RrbgSki7VNqGueNJKLcokoc9ekPncPoCYaXPM2iM"
}

Witness Votes

0 / 30
No active witness votes.
[]