Win-Dll in Unix-So umwandeln...

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

Moin.

Habe auf einem WIn7 Rechner, welcher NUR Dienstlich läuft eine RS485_Com.dll von Nanotec (ist teil von NanoPro V1.60). Wie schon vermuten läst, geht es hierbei um eine Comsteuerung zw. PC und Motorsteuerung (z.B. SCMI-12). Die Demo's von Nanotec helfen auch nicht wirklich, da kein ich über "KEIN" Visual Basic Verfüge und zugegeben kein plan habe, wo ich des beziehen soll.

ist jemand von euch bekannt, ob man eine WIndows-dll mit Unbekannten parameter Ohne bzw. mit mittleren Aufwand in seinen Quellcode umwandeln kann?

Habe mich auch schon hier >>>http://www.winehq.org/wwn/329#Windows/Linux<<< belesen, aber wirklich schlau bin ich nicht geworden. :(, und Nanotec gibt den Quellcode leider nicht raus.

Glaube zwar nicht wirklich, das jemand was hab, aber wenn doch irgendwo eine So für Unix rumgeistern sollte, würde ich mich durch eine Versehendliche Datenübertragung via DropBox freuen :D :D :mrgreen:
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Hitman »

Du brauchst kein VB um den Source zu lesen. All zu schwierig is VB auch nicht zu verstehen, zumal du ja nur nach den Prozeduren (= "Sub" in VB) bzw. Funktionen schauen musst, um dir die Signatur herzuleiten.
Was mich etwas wundert: ist die DLL denn spezifisch für besagten Motor? Vom Namen her klingt mir das eher nach einer allgemeinen COM Port Bibliothek. Synaser könnte dir also von Pascal aus weiterhelfen. Natürlich musst du dann immernoch wissen, was du über den Port zu jagen hast um am Motor etwas zu erreichen. Aber dafür sollte Dokumentation der Motorsteuerung vorliegen.

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

@Hitman
die Handbücher habe ich alle schon durchgelesen. ich weiß nur, welche Befehler für Seriel, und Java verwendet werden. aber wie diese nun innerhalb der DLL definiert sind, verraten diese nicht. deshalb wollte ich ggf. Bsp-Projekte durchlesen und sehen, wie die dies aufrufen. somit bekomm ich ja auch die Parameter der Functionen raus.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Win-Dll in Unix-So umwandeln...

Beitrag von pluto »

Das musst du dann in Erfahrung bringen. Beispiel:
Ich habe eine IR-Fernbedienung für USB. Für Windows lag eine Software dabei. Was mache ich? Zuerst versuche ich es unter Delphi zum Laufen zu bekommen, kein Thema.
Unter Lazarus hat es etwas länger gedauert, aber auch jetzt läuft es unter Lazarus. Ich möchte zwar nur Lesend drauf zugreifen, aber fürs schreiben dürften Ähnliche Regeln Gelten oder?

Du musst also den Genauen Aufbau der Daten irgendwie in Erfahrung bringen. Durch Analyse der Datenwege. Das klingt einfacher als es wirklich ist. Vielleicht findest du im Internet Beispiele, die du verwenden könntest.
MFG
Michael Springwald

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

Würde ich mit sicherheit was finden, Aber wenn denne 100 Pro nur für Win.

wenn ich aber nun eine artverwande Unix-so oder der gleichen hätte, würde ich es gleich via Lazarus versuchen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6213
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win-Dll in Unix-So umwandeln...

Beitrag von af0815 »

Wenn die Schrittmotorsteuerung mitl RS485 verbunden ist, so kann auch lt. den Unterlagen von NanoTec auch mitttels ASCII Kommandos die Steuerung angesteuert werden. Siehe auch dem Programmierhandbuch V2.4,pdf so ab Seite 10 sind die Kommandos beschrieben.

Probieren würde ich mal die Kommandos ab Seite 29/30 Firmware Version bzw. Status auslesen. Die sollten auch mit einem Terminal gehen. Wenn das funzt so kan man mit Synaser sicherlich weiterarbeiten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Win-Dll in Unix-So umwandeln...

Beitrag von pluto »

Würde ich mit sicherheit was finden, Aber wenn denne 100 Pro nur für Win.

Das würde ich so nicht sagen. Du könntest Glück haben, dass der Code den du findest, auch unter Lazarus/Linux läuft. Wobei: Es geht auch eigentlich nur darum, wie die Datenaufgebaut sind. Wenn du das weißt, solltest du in der Lage sein, einen eigenen "Treiber" zu schreiben.
MFG
Michael Springwald

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

af0815 hat geschrieben:Wenn die Schrittmotorsteuerung mitl RS485 verbunden ist, so kann auch lt. den Unterlagen von NanoTec auch mitttels ASCII Kommandos die Steuerung angesteuert werden. Siehe auch dem Programmierhandbuch V2.4,pdf so ab Seite 10 sind die Kommandos beschrieben.

Probieren würde ich mal die Kommandos ab Seite 29/30 Firmware Version bzw. Status auslesen. Die sollten auch mit einem Terminal gehen. Wenn das funzt so kan man mit Synaser sicherlich weiterarbeiten.


:mrgreen: Genau, das was ich sowieso vorhatte :D

pluto hat geschrieben:
Würde ich mit sicherheit was finden, Aber wenn denne 100 Pro nur für Win.

Das würde ich so nicht sagen. Du könntest Glück haben, dass der Code den du findest, auch unter Lazarus/Linux läuft. Wobei: Es geht auch eigentlich nur darum, wie die Datenaufgebaut sind. Wenn du das weißt, solltest du in der Lage sein, einen eigenen "Treiber" zu schreiben.


werd mich denne am WE mal nebenbei mir hinsetzten, bin ja sowieso. Via Nanopro und CoDeSys auf der Steuerung. Lohnt sich gleich 3fach :D

werd mal sehen, was ich hinbekomme.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Win-Dll in Unix-So umwandeln...

Beitrag von schnullerbacke »

Hi,

versuch mal das hier. Wenn dann Zugriffe auf die Windows-API vorkommen, kannst du das eh knicken. :shock:

http://www.chip.de/downloads/IDA-Pro-Free-4.9_29744270.html

Wenn keine API dann einfach neu unter linux Assemblieren. :wink:
Manchmal klappt derlei... :mrgreen:
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Win-Dll in Unix-So umwandeln...

Beitrag von pluto »

versuch mal das hier. Wenn dann Zugriffe auf die Windows-API vorkommen, kannst du das eh knicken.

Nicht immer. Es gibt Windows API Funktionen, die wurden nach gebildet unter Lazarus/Linux. z.b. bitblt ist so eine.
MFG
Michael Springwald

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

schnullerbacke hat geschrieben:Hi,

versuch mal das hier. Wenn dann Zugriffe auf die Windows-API vorkommen, kannst du das eh knicken. :shock:

http://www.chip.de/downloads/IDA-Pro-Free-4.9_29744270.html

Wenn keine API dann einfach neu unter linux Assemblieren. :wink:
Manchmal klappt derlei... :mrgreen:


Hört sich erst mal nicht verkehrt an, aber ist leider für das Falsche BS.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Win-Dll in Unix-So umwandeln...

Beitrag von schnullerbacke »

Hört sich erst mal nicht verkehrt an, aber ist leider für das Falsche BS.


Hast mich aber schon richtig verstanden, disassemblieren unter Windoofs. Dabei kommt halbwegs brauchbarer Assemblercode zustande, den dann unter LINUX neu assemblieren. Da gibt es auch einen Standard-Assembler im Netz der für LINUX geht. Kommt mehr auf den Prozessor an, für den das laufen soll. Hier wäre derlei:

http://www.heise.de/software/download/hdwl45214_d376724d70dbcedad1efb0eb98880b10_1328428518 :wink:

Die BS-Aufrufe dürften sich bei der Kiste vermutlich in engen Grenzen halten, soll ja auf die USB zugreifen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6213
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win-Dll in Unix-So umwandeln...

Beitrag von af0815 »

Ich glaube in diesem Fall ist man Zielführender weenn man die Dokumentierten Zugriffe in SW gießt, denn nur disassemblieren und dann auf der neuen Plattform assemblieren, ist sicherlich zuwenig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Win-Dll in Unix-So umwandeln...

Beitrag von schnullerbacke »

af0815 hat geschrieben:Ich glaube in diesem Fall ist man Zielführender weenn man die Dokumentierten Zugriffe in SW gießt, denn nur disassemblieren und dann auf der neuen Plattform assemblieren, ist sicherlich zuwenig.

Na ja af,

das Problem ist gerade das er die lib braucht um auf die vorhandenen interfaces zu kommen. Ansonsten könnte man auch Java-Script nehmen, wie ich gesehen habe. Aber ideal ist sowas meist nicht, weil sehr langsam.

Wenn der faule Trick(s.o) klappt, hat man praktisch die lib zur Verfügung und kenn das in Lazarus verwenden indem man sich die Schnittstellen in einer Unit deklariert und kann dann eben unter Linüx genauso so schön arbeiten wie unter Windoofs.

Ein bisschen "tricky" ist das allerdings. :lol:
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Win-Dll in Unix-So umwandeln...

Beitrag von Maik81ftl »

schnullerbacke hat geschrieben:
Hört sich erst mal nicht verkehrt an, aber ist leider für das Falsche BS.


Hast mich aber schon richtig verstanden, disassemblieren unter Windoofs. Dabei kommt halbwegs brauchbarer Assemblercode zustande, den dann unter LINUX neu assemblieren. Da gibt es auch einen Standard-Assembler im Netz der für LINUX geht. Kommt mehr auf den Prozessor an, für den das laufen soll. Hier wäre derlei:

http://www.heise.de/software/download/hdwl45214_d376724d70dbcedad1efb0eb98880b10_1328428518 :wink:

Die BS-Aufrufe dürften sich bei der Kiste vermutlich in engen Grenzen halten, soll ja auf die USB zugreifen.


Jopp Schnullerbacke habe ich.

das Teil von Heise hab ich mir auch mal angeschaut, soweit es bei Ubuntu durch die verwendung von DEB geht :mrgreen: (sind nur rpm-Downloads)

Auch wenn dein erster vorschlag eigendlich unter WIndows laufen soll, hab ich nicht gesagt, das ich es nicht unter Wine laufen lasse.

werd versuchen aus der Dll eine fpc-Unit zu bekommen. bzw genug daten, um eine zu schreiben.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Antworten