Electronics > Manufacturing & Assembly

HWGC P&P machines - Documentation, Discussion and Info

<< < (37/44) > >>

I have asked the producer ! He gave me a "green light".
Probably can somebody find a problem with the language.
New calibration takes a lot of time...

It has a trial mode to lock out users who don't "own" the machine.
So it is not like they are not preventing people from using it.

Anyone able to confirm that they are using Goldvision or/and Jovision capture cards for the cameras? If so, it will a fun time trying to find a replacement...

I decompiled the main executable and currently sifting through it. The registration lock looks to be hardware ID encoded so even if you were to give out your registration key, that key only works for your hardware.

--- Code: ---public string getDeviceSerialCode()
ManagementClass managementClass = new ManagementClass("Win32_Processor");
ManagementObjectCollection instances = managementClass.GetInstances();
string text = null;
using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator = instances.GetEnumerator())
if (managementObjectEnumerator.MoveNext())
ManagementObject managementObject = (ManagementObject)managementObjectEnumerator.Current;
text = managementObject.Properties["ProcessorId"].Value.ToString();
managementClass = new ManagementClass("Win32_BaseBoard");
instances = managementClass.GetInstances();
string text2 = null;
using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator2 = instances.GetEnumerator())
if (managementObjectEnumerator2.MoveNext())
ManagementObject managementObject2 = (ManagementObject)managementObjectEnumerator2.Current;
text2 = managementObject2.Properties["SerialNumber"].Value.ToString();
managementClass = new ManagementClass("Win32_PhysicalMedia");
instances = managementClass.GetInstances();
string text3 = null;
using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator3 = instances.GetEnumerator())
if (managementObjectEnumerator3.MoveNext())
ManagementObject managementObject3 = (ManagementObject)managementObjectEnumerator3.Current;
text3 = managementObject3.Properties["SerialNumber"].Value.ToString();
managementClass = new ManagementClass("Win32_BIOS");
instances = managementClass.GetInstances();
string text4 = null;
using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator4 = instances.GetEnumerator())
if (managementObjectEnumerator4.MoveNext())
ManagementObject managementObject4 = (ManagementObject)managementObjectEnumerator4.Current;
text4 = managementObject4.Properties["SerialNumber"].Value.ToString();
return text + "-" + text2 + "-" + text3 + "-" + text4;

--- End code ---
That being said, not that hard to generate new hardware IDs or fool programs into believing it is another ID.
This means if you have an issue with the hardware and the vendor is not helping, having your original hardware IDs on hand and registration keys would allow you to put new hardware in and get everything back up and running.
It is being handled by the "moon_boxes.dll" so I am having a look through that now, but my skill set does not cover this sort of thing.

--- Code: ---[DllImport("moon_boxes.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int moon_wind_checkget_software_state(ref byte ktime, ref byte is_h);

[DllImport("moon_boxes.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int moon_wind_set_key(string key, int size);

[DllImport("moon_boxes.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int moon_wind_get_key(ref byte key);

[DllImport("moon_boxes.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int moon_set_wind_devcode(string code, ref byte out_code, int size);

[DllImport("moon_boxes.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int moon_get_wind_devcode(ref byte out_code);
--- End code ---

Does anyone else's "Device Code" look like this format?


Note that I am getting a few red flags on the EXEs
Though this is probably down to some of the hardware calls it tries to make at launch. (not an expert at this stuff so pinch of salt)

7PM Update
So looks like keys have a time and date set. Basically, if you have an old key prior to 2019, they ask for you to contact support for a new one.
If you have a key the lasts longer than 2035, it is a "Permanent License" and will stay unlocked forever.
Something tells me setting the BIOS clock will fix that if you have a license that will run out soon...  :-DD

There are several states that the license can be in within the code. Either one can get the DLL to report a false state or one could just work out the encoding of the hardware IDs to provide one's own serial to get around the hardware locks... Me thinks

9PM Update
Pretty sure I need to get the "moon_boxes.dll" function "moon_wind_checkget_software_state" to return a "1". That is all that is needed. But I don't know how to work with DLLs...

11PM Update

Managed to get the full readout of my hardware IDs. Started running it via the VS debugger so it does not have issues at the start with permissions.

Think I bypassed some of the restrictions. If you want to test here is the 64 bit EXE https://github.com/HWGC-P-P/8.8.0-reworked/releases/tag/Patch
You won't get very far without a machine as it wants to connect to the controllers before really starting up.

It will still say "trial" and should allow you to connect to the machine, but actually being able to do anything beyond that, not sure.
PS, I am only doing this as the support given by HWGC & YX to members on this forum has been pretty poor and I think those people deserve to use their machines.

Obviously, this is just for educational purposes only. And should not be used for actual production work. No warranty given and I take 0 responsibility for it damaging anything.
No flags https://www.virustotal.com/gui/file/a2eaa806246db3cada0f85bdfd1be4eb766775d16870452ee70675670792cd71/detection


--- Quote from: JMG on October 28, 2021, 08:00:04 pm --- Now, I am having issues with the main SMT placement program, it fails with a cant find moon_boxes.dll which is installed and located exactly where it should be.

--- End quote ---

Not sure if you fixed this but moon_boxes.dll was built with Visual Studio 2010 so you need both x86 and x64 Microsoft Visual C++ 2010 Redistributables


I have been digging a bit into the camera software via the code and DLLs provided.

High cam looks to be an industrial-style camera from CatchBest.
It is the U3C500M/C going off the code calling for its driver and the spec sheet matches the resolution request from the code also.

Fast cams and Mark cam, while I don't know the camera hardware, the capture devices look to be PCI-E CCTV DVR cards by Jinan Jovision?
Jinan Jovision's own website (https://www.jovisionsecurity.com/) looks to have moved on from these devices but a USA company by the same name lists a few cards.
The code calls for a "JVS960S" which is very close to a "JVS-C960E" 8 channel PCIe card on the USA website. http://www.jovision-usa.com/c98chcldvrvi.html
Other calls in the software are for "JW6008HT", "MV360" and "JVS900 OR JVS960S"

There is a download here http://nvsip.com/en/techsupport/software/detail/5.shtml which includes the SDK.
The SDK and the one included in the SMT software both reference a JVS-C896 but the "legacy" DLL calls for the JVS-C900..?

As for the controller boards, they are custom-made by HWGC as far as I know. I have seen a video of them making them I think?
The software is looking for a CP210x USB to Serial device with "HWGC-QiGn" in the port name.
The software supports the full range of P&P machines from the SMT460 up to the DSQ800_120F. But there are only 6 control boards from the looks of it.

1PM Update
Further investigation into the code, the Fast and Mark cameras use the Jovision 4 or 8 or 16 channel PCI-E cameras.
Each machine model lists what driver set to use along with what channel each camera is on.
Only the DSQ800_120F makes use of the 16 channels so I suspect that the other machines all have 4 or 8 channel capture cards.
The calls made to each card driver are all pretty generic so the two included DLL SDKs can easily swap out, I would hazard a guess that you could swap out said DLLs with the ones for the JVS-C960E and JVS-C890H capture cards for example.

As for the other calls to the MV360, AHD8 and JW6008HT look to be other brands of capture cards that from the looks of it, they could swap out with the Jovision cards. But it does look like the code is more set up for the Jovision cards.

The only info I can find for the MV360 capture card is via this website. Though I can not confirm it is the correct card/info.
http://www.mv360.net/index_en.php It lists it as a USB, PCI or PCI-E capture card. From the looks of it, it is an 8 channel device.

For the JW6008HT, there is a reference to an "HV7000 4/8CH 960H PCIE DVR Card" in the code. No more info than that.
The AHD8 references a "QiGn_V8 PCIE Card".

8th Dec Update

Just remembered that MasterTech posted a photo of the PC and the PCI-E cards look completely different from the cards I have found online. They look pretty modern actually.
I am wondering if the cards they are using are made by Jovision or have the same chips or something as to make use of these DLLs? Maybe they have been left in as legacy code remains? But then why does the code call for those drivers? So many questions!
Hopefully, MasterTech can let us know the model number?

Looks a lot like this actually... Even the cable.

I have compiled everything I know so far about the machines hardware and software on this Github page. https://github.com/HWGC-P-P/Wiki/blob/main/README.md


--- Quote from: JMG on October 28, 2021, 08:00:04 pm ---Quick update: Still not running.

It took FOREVER to get Win7 64 to accept cd/dvd/usb drivers to actually install. Now, I am having issues with the main SMT placement program, it fails with a cant find moon_boxes.dll which is installed and located exactly where it should be. I also cant load pcie drivers because there is a signing error. I cant update the .net framework because it reports that the root certificate is bad yet I pulled this right off the MS website, and finally I cant get the fast cam driver from their link because apparently whatever they've created in the file is in violation of Google Drives terms of service and its inaccessible.

As for Jim, well, after saying they can no longer help and I should find someone in my own country, has stopped answering emails. I have begged for a clone image of a working drive and have offered to pay. Crickets.

Also to note, they seem to use an unregistered copy of windows and seem to have some work around that stops it asking for you to register it. Knowing this makes me a lot less resistant to someone copying and hacking their software.

At this point, I own a $13000, 5 month old, 450lb brick that is costing me money in lost production every single day. F 'em. Copy their damn software.

--- End quote ---

Did you solve this somehow?


[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Go to full version