|
Subscribers Factor Fanatic Posts: | 69 |
Location: | Japan | Status: | |
| If I replaced "/machine:THUMB" with "/machine:ARM" for CNF_LDFLAGS of OpenSSL makefile, link error occurs:
crypto\dllmain.obj : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM' |
|
|
|
Subscribers Factor Fanatic Posts: | 58 |
Location: | Japan | Status: | |
| Quote soju - 2022-12-23 10:15 PM
If I replaced "/machine:THUMB" with "/machine:ARM" for CNF_LDFLAGS of OpenSSL makefile, link error occurs:
crypto\dllmain.obj : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'
Sounds like you need `nmake clean` first? Nevermind if you have already done it. Edited by watamario15 2022-12-23 3:00 PM
|
|
|
|
Subscribers H/PC Guru Posts: | 5,289 |
Location: | United States | Status: | |
| Quote
Running it directly in Windows: npopuk is not a valid windows ce application
Running it in Exec Check: npopuk.exe is invalid file
Running it in Tronik Run:Missing Function \Windows\coredll.dll does not export function with ordinal number: 1875
watamario15: Thank you, I finally tried Tronik Run a second time and I was able to get it working. The archive.org doesn't work, but I found the official website, but peinfo doesn't work on my device. I also added TronikRun to the SCL and gave credit to you. Is there an official website or readme I can use to fill in information? Edited by torch 2022-12-23 4:07 PM
|
|
|
|
Subscribers Factor Fanatic Posts: | 58 |
Location: | Japan | Status: | |
| Quote torch - 2022-12-23 11:53 PM
Quote
Running it directly in Windows: npopuk is not a valid windows ce application
Running it in Exec Check: npopuk.exe is invalid file
Running it in Tronik Run:Missing Function \Windows\coredll.dll does not export function with ordinal number: 1875
watamario15: Thank you, I finally tried Tronik Run a second time and I was able to get it working. The archive.org doesn't work, but I found the official website, but peinfo doesn't work on my device
OK, ordinal number 1875 of coredll.dll is __security_gen_cookie, and it means the OpenSSL DLLs require this function that your device lacks in coredll.dll. (coredll-ord1875.png)Attachments ---------------- coredll-ord1875.png (61KB - 0 downloads) |
|
|
|
Subscribers H/PC Guru Posts: | 5,289 |
Location: | United States | Status: | |
| Thank you. I did some research and found the following two pages that mention that function. I’m not sure if they’d be applicable to our scenario but one is in Japanese and the other in Chinese
http://bbs.eeworld.com.cn/thread-141115-1-1.html
https://blog.ch3cooh.jp/entry/20130417/1366182420 |
|
|
|
Subscribers Factor Fanatic Posts: | 58 |
Location: | Japan | Status: | |
| Quote I also added TronikRun to the SCL and gave credit to you.
Thanks! To be clear, this find is by TMK. I wonder why he noticed that this just Run.exe can be used as a dependency analysis tool
Edit: Oh, I should also note that the coredll hack (modifying an exe/dll's coredll.dll import with a hex editor to make it runnable ) is also TMK's find.
Quote Is there an official website or readme I can use to fill in information?
The uploaded zip should contain "!Command Guide.txt". This is the only document I know of. The author is TroNik. Edited by watamario15 2022-12-23 4:45 PM
|
|
|
|
H/PC Philosopher Posts: | 327 |
Location: | United States | Status: | |
| Wow, this thread has been busy while I've been away!
soju wrote:
> And, yes, API had changed from OpenSSL v1.0.2 to v1.1.0. To adopt it, you'll need a little fix for WinSockSSL.c of nPOPuk.
Do you have that fix? I haven't looked at this at all.
It looks like most of the recent posts have been using a version of nPOPuk 3.05b1 without SSL, and trying to get it to load the OpenSSL DLLs from soju. I assume that, if I figure out how to compile OpenSSL 1.0.2 for WinCE, then those experiments are not as important. In the past, I have compiled .lib files, and linked nPOPuk against them statically, so DLLs are not required.
I also think that, if you have the old OpenSSL DLLs for version 0.9.8x, these should work fine with nPOPuk 3.05b1 (other than having whatever bugs in the old OpenSSL). |
|
|
|
Subscribers Factor Fanatic Posts: | 69 |
Location: | Japan | Status: | |
| dependencies of __security_check_cookie and __security_cookie are removed by disabling buffer security check (/GS-). It is enabled by default. I had been disabling it for nPOPuk.exe and OpenSSL, but not for wcecompat.
Edited by soju 2022-12-23 4:39 PM
|
|
|
|
Subscribers Factor Fanatic Posts: | 69 |
Location: | Japan | Status: | |
| Added /GS- compile flag for wcecompat. The dependency of coredll.dll's 1875 (__security_gen_cookie ) will be removed.
ARMv4_009: https://www.dropbox.com/sh/0y5nkjcn38v63w4/AACz8jTDn5hGzvwGwp3oiLIja... |
|
|
|
Subscribers Factor Fanatic Posts: | 69 |
Location: | Japan | Status: | |
| > Do you have that fix? I haven't looked at this at all.
Yeah I did. It was quite a little change than I had expected.
https://www.dropbox.com/s/y057mz3t3mg8dde/WinSockSSL.c.diff
> I assume that, if I figure out how to compile OpenSSL 1.0.2 for WinCE, then those experiments are not as important. In the past,
I think linking statically or dynamically is not a major issue since we have to solve the same dependency problem anyway. Edited by soju 2022-12-23 5:44 PM
|
|
|
|
Subscribers H/PC Guru Posts: | 5,289 |
Location: | United States | Status: | |
| Hi, this release opened correctly - I am having issues (unrelated to you) getting the MobilePro online with my wifi . I'll update soon
Edited by torch 2022-12-23 5:37 PM
|
|
|
|
H/PC Philosopher Posts: | 327 |
Location: | United States | Status: | |
| So, I fired up my Win98 laptop with Visual Studio and the WinCE SDK. Then I had to go find the old flash drive that the Win98 laptop already knew, because I don't connect it to the internet any more to look for a driver for a new flash drive ...
I compiled the non-SSL version, just to see that I could still compile stuff ... good.
Then I started poking at the OpenSSL code. I found a couple glitches to fix, I'll need to update the .mak files:
1 ) need crypto\bn_int.h copied to the build directory
2 ) need to remove /WX from the CFLAG define, because there's a warning about passing an int to a function that wants char
3 ) need getenv.o to get linked in (apparently, I did this for the non-CE version already )
... and now I have the WinCE 2.11 binary compiled and linked.
I would be happy to have someone test it:
https://npopuk.org.uk/3.05/dl/npopuk305b2ssl_wce211arm.zipEdited by gjcoram 2022-12-23 9:54 PM
|
|
|
|
H/PC Philosopher Posts: | 327 |
Location: | United States | Status: | |
| Quote
It looks like you commented out ERR_free_strings ( ), which makes me wonder if you're leaking memory.
And then you commented out SSLv2_client_method and SSLv3_client_method; perhaps those are no longer available in OpenSSL 1.1.x?
Quote
> I assume that, if I figure out how to compile OpenSSL 1.0.2 for WinCE, then those experiments are not as important. In the past,
I think linking statically or dynamically is not a major issue since we have to solve the same dependency problem anyway.
I only compile part of the OpenSSL library; it's possible that what nPOPuk needs doesn't involve other dependencies (like ws2 ). I guess we'll see when someone tests my binary. |
|
|
|
Subscribers Factor Fanatic Posts: | 69 |
Location: | Japan | Status: | |
| ERR_free_strings ( ) has been deprecated from 1.1.0, we cannot and do not have to explicitly call it in default. There are no leaks on that. The patch is for 1.1.1, you shouldn't use it for 0.9.8. Which version of OpenSSL are you using?
https://www.openssl.org/docs/man3.1/man3/ERR_free_strings.html
Likewise, support of SSLv2_client_method ( ) was removed in 1.1.0. SSLv3_client_method ( ) is unavailable as I configured OpenSSL with "no-ssl3" option. Use of SSLv3 is deprecated as it's not considered secure today.
https://www.openssl.org/docs/man3.1/man3/SSLv3_client_method.html
I didn't but it would be good for nPOPuk to add support for TLS 1.3.
It's good if we can build OpenSSL 1.1.1 without ws2.dll dependency. However nPOPuk makes use of the flow where CryptAcquireContextW ( ), and CryptReleaseContext ( ), CryptGenRandom ( ) exists. So partially build will not help us I think.
|
|
|
|
H/PC Philosopher Posts: | 327 |
Location: | United States | Status: | |
| I just posted the full set of WinCE 211 versions on npopuk.org.uk (arm, mips, sh3, sh4).
I believe one can run the WinCE 211 version of nPOPuk on later versions of Windows CE; definitely WinCE 3, and I think also WinCE 5/6. |
|
|