# setting up

Setting up for copy protection is very easy as follows:

  1. On the Koshinto, set the State of the bind as Bind Waiting.
  2. Run the compiled a.out once, then platform keys on the target machine are sent to the Koshinto.
  3. On the Koshinto, select appropriate keys for your purpose.
  4. On the Koshinto, set the State of the bind as Binding.

That it. Details are below.

# 1. Set the State of the bind as Bind Waiting.

# Log in Koshinto, open edit menu for the bind

Log in to Koshinto again, go to [Binds] - [All].

Click the bind again.

Select Keys from the edit menu for selected bind.

Before running your compiled a.out, all keys might be blank.


# set the Status as Bind Waiting

Select Status from the edit menu for selected bind.


The initial status might be "Not Active".


Click Change Status to select menu and select Bind waiting


Click blue UPDATE button at the bottom right to reflect the changes to the Koshinto service.


# 2. Run the compiled a.out once

Run the compiled a.out once, result shold be NG and exit without taking place 10 second count down because the keys of the bind on the Koshinto is not set to accept confirmation from sansi running on this platform.

pi@raspberrypi:~/sansi_examples/c $ ./a.out 
NG
1
2

However, a.out collects environmental informations that uniquely identifies this platform and can be used as a key, and send these to the Koshinto service.

# 3. Select appropriate keys for your purpose.

Return back to Koshinto, and go to [Binds] - [All] again.

Click blue UPDATE button at the bottom right again to reflect sent informations from a.out.


Then, select the bind, select Keys from edit menu of selected bind.


# Case for Raspberry Pi

In case of running a.out on the Raspberry Pi, keys might be as follows:


The SD Card Serial ID is the unique serial id that all legal SD Card has.

If you lock with this key, even if your application is copied to another SD Card, the execution of your copied application will not be allowed because the serial IDs do not match.

The Platform Serial Number is the unique serial number that all Raspberry Pi has.

If you lock with this key, your application can be executed only on this Raspberry pi.

Locking with both keys, you can bind your application to both the specific SD Card and Raspberry Pi board.

Check the lock check box on the right end of the SD Card Serial ID and Platform Serial Number.


For detail on the other keys, please refer this.

# Case for Linux PC

In case of running a.out on an ordinaly Linux PC, keys might be as follows:

Neither SD card serial ID nor platform serial number, which were useful keys on the Raspberry Pi, are sent to here because the PC does not have an SD card slot and there is no generic way to get the CPU serial numbers of various PCs.

However, scrolling down, you notice that several usable keys are sent to here.


The Nic is acronym for "Network Interface Card", here the physical addresses of network devices connected to your PC are listed with separated by semicoron.

The physical (MAC) addresses sent here are collected and sent by sansi from the built-in Ethernet interface, built-in wifi, and network devices connected to the USB port.

By locking to the physical address of an inexpensive USB Wifi dongle, you can limit the launch of your application to the PC on which the dongle is installed. In other words, you can use an inexpensive USB Wifi device as a substitute for a USB key dongle.

If your PC has multiple NICs, that is, if the NIC key values ​​are multiple values ​​separated by semicolons, you will not see the checkbox to lock to the key. This is because only one NIC can be locked to the key.

If you select one NIC with the "select one nic" selector, you can lock it as a key. In other words, you can limit the launch of your application to the PC equipped with the NIC with that address.




Global IP is the Global IP Address that Sainsi uses to communicate with Koshinto.

Local IPs is a semicolon-separated string of Local IP adresses collected by sansi. As with the NIC, you can select one of them and lock your app as a key.

You can use these keys if you want to limit the launch of your application to server with a fixed IP address.

By the way, the number of NICs and Local IPs generally do not match. The physical addresses of network devices that have been assigned no IP address are also collected as NICs. Also, devices that communicate over the PPP protocol, such as USB 3g dongles, may have an IP address but not a significant physical address.

For detail on the other keys, please refer this.

# Case for MAC

In case of running a.out on the MAC, keys might be as follows:


The Platform Serial Number is the unique serial number that all MAC has.

If you lock with this key, your application can be executed only on this MAC.

Check the lock check box on the right end of the Platform Serial Number.


For detail on the other keys, please refer this.

# 4. On the Koshinto, set the State of the bind as Binding.

Then open Status menu again.


Change sttus to Binding


Then click blue UPDATE button at the bottom right to reflect the changes so far to the Koshinto.

Then return back to PC again and run a.out, This time, result shoud be OK and 10 second count down is performed.

MacBook-Air:c takeyuki$ ./a.out 
OK
start 10 second countdown
10
9
8
7
6
5
4
3
2
1
0!
1
2
3
4
5
6
7
8
9
10
11
12
13
14

If you run a.out on another PC or change the key setting in Koshinto, the result of running a.out will be NG and the 10 second countdown will be blocked.

Last Updated: 11/9/2020, 1:18:02 PM