Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Floste
Thema: B-Spline Interpolation (beim Ändern der Bildgröße)
Am im Forum: Grafik und Sound

Ich habe gelesen, dass man mit B-Splines ziemlich gute interpolationen für Bilder hinbekommen kann. Allerdings habe ich nicht wirklich ahnung davon.

Ich suche entweder fertigen code (sofern selbsterklärend oder gut kommentiert) oder eine für jemanden der nicht grade mathe studiert hat verständlicher erklärung. Allerdings möchte ich mit floatwerten rechnen und nicht auf ganze zahlen von 0-255 runden.

Thema: UAC in Windows 7: taugt in strandardeiunstellung nix
Am im Forum: Smalltalk

Ich wollte mal darauf hinweisen, das UAC in windows7 in standardeinstellung nichts taugt, weil man trotzdem belibige dateien verändern und anwendungen mit adminrechten starten kann. (ganz ohne meldung)

Code dazu ist seit ewigkeiten im internet und microsoft macht auch keine anstalten, dagegen etwas zu unternehmen.

um den konkreten fehler tzu beheben müsste man:
1.) die warnungen, die der windows explorer anzeigt in einen seperaten autoelevate-process auslagern (es werden schließlich immernoch warnungen angezeigt bei den meißten vorgängen, nur eben nicht solche, die den gesamten bildschirm blockieren)
2.) zusätzlich beim umbenennen von dateien eine solche meldung anzeigen.

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Ich habe grade folgendes in einem opensourceprojekt gefunden:
(sinngemäß wiedergegeben)


 switch(messageId)
{
   case bla:
       //code
       break;
   case blub:
       //code
       break;

            #define PARSEMESSAGES 1
            #include "capture.h"
            #include "ctf.h"
            #undef PARSEMESSAGES

    case foo:
       //code
       break;
    default:
        handleError();
        return;
}

Und innerhalb dieser header ist dann folgendes:

#ifndef PARSEMESSAGES
foo()
{
//Code
}

struct bar
{
//Code
}

....
#else
    case meldung1:
//Code
        break;
    case meldung2:
//Code
        break;
#endif

Sehr kreativ, aber wer soll da durchstiegen...

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

in Globale Hooks mit c# (nichtnur lowlevel) habe ich eine dll gepostet, die es erlaubt, c#code in anderen anwendungen auszuführen. Dazu habe ich auchnoch den code für dllinjection gepostet.

Was mir an deinem code auffällt:
1. wenn du für anycpu compilierst kommt sofern du ein x64 system hast auch eine 64bitanwendung heraus. dein zilprogramm muss dann ebenfalls x64 sein, genauso wie die dll für x64 compiliert sein muss. wenn du für x86 compilierst gild das gleiche.

Guck im taskmanager mal nach wo überall ein sternchen steht, und wo nicht.
Ob die dll für x64 compiliert ist, kannst du mit depends.exe herausfinden (das programm ist bei windows sdk und visual studio mit dabei)

stell probeweise mal die target cpu auf x86.

2.


        [DllImport("kernel32.dll")]
        static extern bool WriteProcessMemory(...
wenn du loadlibraryA verwendest, musst du im dllimport-attribut auch das charset=ansi setzen!

3. ob deine dll injeziert wurde siehst du gut mit dem Process Explorer

Thema: Frequenz-Diagramm: (Musik visualisierung)
Am im Forum: Projekte

Zum Download:
[EDIT] da einige sich beschwert aben, das sie das archiv nicht entpacken können, habe ich es ausgetauscht. (warum dabei eine gänzlich unkomprimierte datei größeren ärger macht als eine lzma-komprimiere ist mir allerdings schleierhaft)

Und bevor sich noch leute beschweren, das das programm nicht geht:
man braucht für diese version:
-framewotrk version 3.5
-openal
-einen 3ghz-prozessor oder 2 prozessoren mit jeweils 2 ghz
-gute grafiktreiber
-man muss alle dateien im zipordner entpacken
-eine mp3-datei, die man auf die .exe zieht oder über den öffnen mit dialog mit der .exe öffnet.

Thema: Frequenz-Diagramm: (Musik visualisierung)
Am im Forum: Projekte

Ich habe etwas herumexperimentiert und dabei ist eine neue version entstanden. Ob das nun eine verbesserung ist oder nicht hängt wohl von der sichtweise ab:
Mich hat gestört, das die tiefen frequenzen nur schlecht zu erkennen waren. Anstatt fft (fast fourier transformation) benutze ich jetzt etwas selbst entwickeltes. Dadurch ist die skala jetzt logarithmisch. Allerdings braucht das ganze erheblich mehr rechenleistung, weil der algorithmus wie gesagt selbst zusammengebastelt und nicht so effizient ist (O(n^2) statt O(n*log(n))).
Außerdem habe ich einen schärfungsfilter eingebaut (nocheinmal O(n^2)).
Das ergebnis kann sich aber sehen lassen, wie ich finde.
Ich habe oben ja angedeutet, das man bei manchen liedern die noten erahnen könnte. Deshalb wird jetzt unter der maus immer die frequenz in herz und als klaviernote angezeigt.
Damit man etwas mehr zeit hat, kann man jetzt die wiedergabe mit einem einfachen klick pausieren oder wieder aufnehmen.

Thema: 32Bit- und 64Bit-dll dynamsich referenzieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Für mich funktioniert folgender befehl bei programmstart recht gut:


            Environment.CurrentDirectory = Path.Combine(
                Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
                (IntPtr.Size * 8).ToString());
Erstell einfach einen ordner mit namen 64 und einen mit namen 32. Die dlls werden nach dieser zeile im jeweils richtigen ordner gesucht.

Thema: Suche Tipps und Ansätze, um ein Anti-Cheat-Tool zu coden
Am im Forum: Rund um die Programmierung

Zitat
Müsste eine injecte'de DLL nicht unter den "geladenen Modulen" des Prozesses auftauchen?
1. Es ist ohne probleme möglich, unmanaged-dlls in den speicher zu laden, ohne die offiziellen funktionen zu benutzen.
2. man kann loadlibrary benutzen und die header anschließend maskieren.

Beides kann man als fertigen sourcecode im internet finden.

Ist nur die frage, ob die cheats den code verwenden.

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

Etwas skurril, aber ich stells mal trotzdem:

Schreibe ein programm, das folgendes tut:
wenn das programm ohne adminrechte läuft soll es nach diesen fragen. (runas)
danach soll es cmd.exe auf dem interactive service desktop starten.
Wichtig ist:
-das zu keinem zeitpunkt ein autostart installiert wird (darunter verstehe ich eine komponente/service/programm das beim systemstart automatisch geladen wird)
-der pc nicht neugestartet wird und weiterhin funktioniert
-am ende keinerlei listen- oder serviceeinträge übrigbleiben (wenn erstellt, müssen diese hinterher wieder entfernt werden.)
-keine dateien außerhalb des programmordners geschrieben werden. (am besten garkeine)
Außerdem soll das ganze am besten sofort und nicht erst nach einer minute passieren.

Es dürfen sämtliche .net und windows boardmittel benutzt werden, inklusive sämtlicher kommandozeilenprogramme.

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk


    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Modus: "+(IntPtr.Size*8)+"bit");
            // Zahlen Array erzeugen und im Speicher festpinnen
            int[] numberArray = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
            GCHandle gch = GCHandle.Alloc(numberArray, GCHandleType.Pinned);

            // Aufruf der magischen Funktion, die ein .NET Array erzeugt,
            // das ein reales Unter-Array ist
            int[] subArray = SubArrayMaker.GetSubArray(numberArray);

            // Sicherstellen, dass das Array an Position 5 und 6 noch intakt ist.
            if (numberArray[5] != 5 || numberArray[6] != 6)
                return;

            // das Unter-Array komplett mit Nullen füllen
            lock (subArray) // nur aus Spaß gelockt, ihr seht schon warum ;)
                Array.Clear(subArray, 0, subArray.Length);

            // Überprüfen ob die 5te Stelle nun 0 ist, aber die 6te noch unverändert
            if (numberArray[5] == 0 && numberArray[6] == 6)
                Console.WriteLine("SUCCESS");

            Console.ReadLine();
        }
    }

    public class SubArrayMaker
    {
        delegate IntPtr pRefToPtr(ref object reference);
        static pRefToPtr RefToPtr=MakeRefToPtr();

        private static pRefToPtr MakeRefToPtr()
        {
            DynamicMethod meth = new DynamicMethod("GetAddr", typeof(IntPtr), new Type[1] { typeof(object).MakeByRefType() },typeof(SubArrayMaker),true);
            ILGenerator gen= meth.GetILGenerator();
            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Conv_I);
            gen.Emit(OpCodes.Ret);
            return (pRefToPtr)meth.CreateDelegate(typeof(pRefToPtr));
        }

        struct ArrayHeader
        {
            public IntPtr Syncblock1;
            public IntPtr TypeId;
            public IntPtr Length;
        }

        public static unsafe int[] GetSubArray(int[] numberArray)
        {
            ArrayHeader* oldArray = &(((ArrayHeader*)Marshal.UnsafeAddrOfPinnedArrayElement(numberArray, 0))[-1]);
            ArrayHeader* newArray=&(((ArrayHeader*)Marshal.UnsafeAddrOfPinnedArrayElement(numberArray, 5))[-1]);
            *newArray = *oldArray;
            newArray->Length = (IntPtr)1;

            object array = null;
            IntPtr* pArrayVar = ((IntPtr*)RefToPtr(ref array));
            *pArrayVar = (IntPtr)(&(newArray->TypeId));
            return (int[])array;
        }
    }

Geht unter 32 und 64 bit!
( aber auch nur, weil .net von m$ die letzten 4 bytes der arraylänge ignoriert, weil arrays mit 32 bit ints indiziert werden.)

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

o.O, so war das nicht geplant, die funktion gibts in .net 3.5, das ich noch verwende ned.


Das ergebnis sieht aber richtig aus.

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

So, da immernoch keine neue aufgabe da ist, habe ich mal versucht eine zu machen (besonders kreativ is sie nicht, aber lösbar):

Aufgabe:
Schreibe ein programm, das das gemeinsame kgv (= kleinste gemeinsame vielfache) aller Zahlen in der liste im anhang in unter 10 sekunden findet. Das programm soll also genau eine zahl ausgeben.

Optional / Wünschenswert ist:
-lösen aufgabe in unter 1 sec
-möglichst simpler code
-eine gute nächste aufgabe in petto haben

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

Schade, dass es hier nicht weitergeht, aber ich habe ehrlichgesagt auch keine lust obige aufgabe zu lösen.
Vielleicht fällt ja jemandem eine bessere ein.

Thema: [Erledigt] Am Ende einer Methode bestimmten Code ausführen, egal wie die Methode verlassen wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Beinahe hätte ich gefragt: Funktioniert das auch mit returns im try?
Habs dann aber einfach schnell ausprobiert und ja, finally wird immer aufgerufen
wusste ich noch garned.

Thema: Prozess abschiessen unterbinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich kenn nur 4 möglichkeiten:

1. der benutzer darf keine adminrechte haben (das ist die sauberste)

2. den taskmanager unterbinden, allerdings schützt das nur gegen noobs. jeder der sich auskennt kann entweder die kommandozeilentools taskkill und tasklist nehmen oder sich was eigenes schreiben

3. rootkits: (wie manche antivirenprogramme sie verwenden) Das kommt mir irgendwie wie mit kannonen auf spatzen schißen vor und außerdem handelt man sich 1000 probleme ein. Außerdem ist soetwas mit c# unmöglich.

4 den prozess verstecken (z.b. in explorer.exe). Ja, man kann in bestehenden prozessen eigene programme starten

Thema: Memcpy C++ in C# umsetzen
Am im Forum: Rund um die Programmierung

Soweit ich deinen code verstehe, mach er nichts weiter, als:

CopyFirst(structname[] array,int newSize)
{
    structname[] newArray=new structname[newSize];
    Array.Copy(array,0,newArray,0,newSize);
    return newArray;
}

in c# gibt es verschidene methoden für verschidene zwecke:
array zu array (gleicher typ): Array.Copy(...);
array zu array ( primitive typen wie int, short usw): Buffer.BlockCopy(...)
array oder struct zu pointer (und andersrum): Marshal.Copy(...)
pointer zu pointer: http://www.pinvoke.net/default.aspx/kernel32.movememory

Thema: SharpDevelop & VS... selber Debugger?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielleicht solltest du mal das os oder den pc wechseln.

Es kam neulich eine lücke raus, die sich auf eine racecondition im win32 createthread bezieht. Bluescreens kommen schließlich nur durch fehler im kernel zustande. Allerdings denke ich dass die wahrscheinlichkeit dafür gering ist.

Thema: Windows Service zur Entwicklungszeit
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

entweder #1
installier den service über konsole: "sc.exe" und stoppe und starte ihn mit "net start name" und "net stop name"

du musst ihn ja nicht deinstallieren, sondern nur stoppen, binary überschreiben (z.b. durch neucompilieren) und wieder starten

oder #2 mach in derner main ne abfrage, ob der benutzername ein serviceaccount ist. (ich meine den username, mit der sessionnummer sollt5e man hingegen vorsichtig sein)
wenn ja: service starten
wenn nein: service emulieren

Thema: Programme laden dlls von seltsamen orten (z.B. desktop)
Am im Forum: Smalltalk

Zitat
Die "peerdist.dll" sollte eigentlich in deinem System32-Verzeichnis sein
ist sie aber nicht: weder in system32 noch in syswow! Und ich habe sie auch nicht gelöscht!
Zitat
ist deine PATH-Variable irgendwie "verstellt" ?
alles standardeinstellung
Zitat
Womit hast du das Verhalten beobachtet? Sysinternals Process Monitor? (ehemals File Monitor)
mit c++ eine dll erstellt, die einen aus der dllmain heraus abmeldet, und diese mit entsprechendem namen auf meinen desktop gepackt^^

Thema: Programme laden dlls von seltsamen orten (z.B. desktop)
Am im Forum: Smalltalk

Ich habe festgestellt, dass viele programme dll von orten laden, von denen man dies nicht erwartet.

Die meisten programme laden vom desktop:
Internetexplorer 8 (32bit) lädt bei mir (win7, 64bit) z.B. alles, was peerdist.dll heißt und sich auf dem desktop befidet
Ziemlich viele programme, die sich mit dem internet verbinden tun das selbe. (auch wenn man in einem "öffnen mit"-dialog eine httpaddresse eingibt)

gimp lädt, wenn man ein bild über rechtsklick -> "edit with gimp" öffnet wintab32.dll aus dem ordner des bildes.

Ich habe das gefühl, das es noch vile mehr dergleichen gibt.

Thema: [gelöst]Herausfinden, mit welchem programm/befehl datei geöffnet wird
Am im Forum: Rund um die Programmierung

Das man einfach Process.Start("datei...") schreiben kann, und das dann gestartet wird ist mir klar.

Ich möcte aber keine konkreten dateien öffnen, sondern:
1. Alle dateiendungen auflisten, die registriert sind (vom gesamten system). (Wie geht das?)
2. dazu jeweils den standardbefehl anzeigen (welches programm mit welchen zusatzbefehlen). (Wie geht das?)

Wie bekomme ich das am einfachsten hin, ohne jeweils eine datei pro typ zu erstellen?

Thema: Suche kostenlos Web-Hosting ohne Werbung
Am im Forum: Smalltalk

lima city ist echt kacke, da muss man glaube ich mit forenposts bezahlen. Das bemerkt man aber erst nachd er anmeldung....

Thema: Suche kostenlos Web-Hosting ohne Werbung
Am im Forum: Smalltalk

Die webseite www.bplaced.net gefällt meinem virenscanner garnicht.
Es kommt ne meldung, dass die seite www.bplaced.net:49183 (komischer port) infiziert sei! Dabei habe ich adblock und noscript an: kein javascript, keine objekte und wenig werbung kommt durch.
Edit: ich kann die addresse unter dem port aber garnicht aufrufen, selbst wenn der virenscanner nicht meckert, da schlicht keine antwort kommt.
Als ich die seite über n proxy angefordert hab, kam eine meldung, dass ein javascriptdropper heruntergeladen wurde^^

Thema: "Als Administrator ausführen..." - Was passiert da genau?
Am im Forum: Rund um die Programmierung

[offtopic] von kernelmode aus kann man leicht einen prozess zur laufzeit zum administartor ändern^^ Habe dazu mal nen code gefunden, der das in 22 assemblerbefehlen macht, dieser code lief allerdings nur auf win xp im kernelmode, sollte aber anpassbar sein. ^^
Dieser code hat auch einfach das securitytoken ersetzt.

Das "stoned bootkit" benutzt etwas ähnliches. [/offtopic]

Thema: 64bit dll aus C-Sharp ausrufen...
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

1. Wenn das einlesen schiefgeht:
Wie haste die struktur definiert: insbesondere: wie sicht das structlayout-attribut aus? Hast du eins?
ich empfehle dringend folgendes:


StructLayout(LayoutKind.Sequential ,Pack=1)]// es kommt auf das pack an!
struct MeinStruct
{
 ...

2. Welche Callingconventions haste definiert? Garkeine?
3. Geh mal während des debuggens auf Debug -> Fenster -> Arbeitsspeicher und gib die addresse aus deinem intptr ein und guck, ob dort bytewerte stehen und ob diese halbwegs ok aussehen.

Thema: Simpler 32bit x86 disassembler
Am im Forum: Projekte

War noch vielmehr frickelkram als anfangs gedacht, aber am ende gehts doch halbwegs:
ein rudimentärer x86 32bit disassembler:

man kann daten in verschidenen hexadezimalen formaten (z.B. shellcode) eingeben und bekommt die anweisungen ausgespuckt.

source ist natürlich dabei.

Thema: Der Typ "bool?" kann nicht implizit in "bool" konvertiert werden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

mach mal n punkt ... hinter chbLinks.IsChecked und guck dir an, was intellisense sagt.
da müsste eine geigenschaft namens Value sein.

Thema: Lockfreie threadsichere Queue
Am im Forum: .NET-Komponenten und C#-Snippets

Ein Element, das etwas später freigegeben wird, verbraucht in den meisten Fällen nicht soo viel Speicher, aber da dies offensichtlich einigen Leuten wichtig ist, habe ich deine Zeile ergänzt.

Thema: NUnit merkwürdiges Verhalten bei Multithreading: "Expected: true but was: true"
Am im Forum: Rund um die Programmierung

Das folgende lustige kleine snippet gibt aus:
"True does not equal True"

		byte[] bytes=new byte[2]{1,2};
		bool[] bools=new bool[bytes.Length];
		Buffer.BlockCopy(bytes,0,bools,0,bools.Length);
		if(bools[0]!=bools[1])
			Console.WriteLine(bools[0]+" does not equal " + bools[1]);

Vielleicht ist das je eine erklärung.

Thema: Wer spielt Star Craft 2?
Am im Forum: Smalltalk

Registration is zum Kotzen.

Kampagne is ok, aber noch kein grund für mich das spiel zu kaufen.

Der editor und die scriptsprache sind ganz nett, allerdings kann man die maps blöderweise nur sehr eingeschränkt hosten: die maps werden nach popularität sortiert und man fängt grundsätzlich mit popularität=0 an. Das kombiniert damit, dass man nicht sehen kann wieviele leute in einem spiel warten (der eintrag bleibt in der liste, auch wenn keiner drinn is) führt dazu, dass keiner die selbstgemachten maps je ausprobieren wird. Selbst neue versionen von populären maps werden nicht gespielt, weil sie zu weit unten sind. Außerdem muss man die maps auf seinen onlineacc laden und kann nicht direkt von der platte spielen. Außerdem gibt es vergleichsweise sehr wenige models nur.

Ich spiele Warcraft3 seit langem nurnoch, weil man eigene maps mit eigenen regeln machen und spielen kann. Hab mir das jetzt auch von starcraft 2 erhofft :(