|
Verfasser |
Nachricht |
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Die NGP wird einen ARM Cortex-A9 Prozessor haben. Du kannst ja, wenn du dich vorbereiten möchtest, ja schonmal die ARM Assembly language durchlesen. MIPS Kenntnisse sind hilfreich, wenn du mit ARM Assembly anfangen willst.
Erstmal steht bei mir PS3 auf dem Plan, aber ohne CFW
Daher hat das mit dem Assembler noch Zeit.
mfg D3lta
EDIT: Wie viele Nachkommastellen hat der Typ double in C eig, denn bei einem PI-Berechner, den ich einmal zu rÜbung gecodet habe, wurde sowohl mit cout, als auch mit printf nur 5 ausgegeben...
"Linux is like a tent, no windows, no gates and an apache inside."
Dieser Beitrag wurde zuletzt bearbeitet: 19.03.2011 18:18 von D3lta.
|
|
19.03.2011 18:14 |
|
|
|
PSP_Lord
Durchstarter
Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 133
|
RE: C: Plugin
Nun, double ist ja 64 Bit double precision, also doppelte Genauigkeit, insofern müsstest du mehr als nur 5 Kommastellen bekommen.
64 Bit = 52 Bit übrig, um 15 Dezimalzahlen darzustellen.
|
|
19.03.2011 19:02 |
|
|
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: C: Plugin
EDIT: Wie viele Nachkommastellen hat der Typ double in C eig, denn bei einem PI-Berechner, den ich einmal zu rÜbung gecodet habe, wurde sowohl mit cout, als auch mit printf nur 5 ausgegeben...
Wahrscheinlich gibt die Funktion nur float Zahlen zurück.
Double würde ich auf der PSP nicht benutzen, da es sie es Hardwareseitig nicht unterstützt und sie nur durch Tricks mit dieser umgehen kann.
In der der <limits.h> kannst du die Maximalen Größen der Zahlen anschauen.
Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,
Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!
|
|
19.03.2011 19:06 |
|
|
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Hat jemand eine Idee wie man alle 15 mit cout bzw printf ausgibt?
mfg D3lta
EDIT: @pspbricker: Ich habe wohl vergessen zu sagen, dass es auf dem PC war. Ich rechne in der Formel nur mit Doubles und Konstanten(zB 1;234). Die Variable ist auch eine Double, also wird wohl eher es nicht daran liegen.
"Linux is like a tent, no windows, no gates and an apache inside."
|
|
19.03.2011 19:32 |
|
|
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Beim kompieren bekomme ich immer folgende Fehler:
In function '_sbrk':
../../../../../../../newlib-1.17.0/newlib/libc/sys/psp/libglue.c:539: unfined reference to `sceKernelMaxFreeMemSize'
Woran könnte das liegen?
mfg D3lta
"Linux is like a tent, no windows, no gates and an apache inside."
|
|
20.03.2011 15:27 |
|
|
|
PSP_Lord
Durchstarter
Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 133
|
RE: C: Plugin
Adde mal in deinem makefile in der Zeile LIBS folgendes: -lpspuser
"undefined reference" bedeutet, dass du noch gegen eine library im makefile linken musst. Und zwar gegen die library, die die angegebene Methode enthält.
Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2011 17:17 von PSP_Lord.
|
|
20.03.2011 17:16 |
|
Folgende User bedanken sich: |
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Das hatte ich schon einmal, nur das Problem ist: welche LIB? -lpspuser ist es nicht, schade
mfg D3lta
"Linux is like a tent, no windows, no gates and an apache inside."
|
|
20.03.2011 17:52 |
|
|
|
PSP_Lord
Durchstarter
Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 133
|
RE: C: Plugin
Adde mal LIBS = -lpsplibc, ....
|
|
21.03.2011 18:13 |
|
Folgende User bedanken sich: |
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Hat auch nicht geholfen...
"Linux is like a tent, no windows, no gates and an apache inside."
|
|
21.03.2011 18:27 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: C: Plugin
Ohne Code können wir schlecht helfen.
|
|
21.03.2011 18:32 |
|
|
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
OK, ich habe einen Keylogger geschrieben, der die Tasteneingaben in eine log.txt protokolliert. Als Anwendung funktioniert das Programm. Aber als plugin kriege ich immer den oben gennanten Error
//
/****************************************************
***** keylogger_plugin *****
***** D3lta, edit: 20.03.2011 *****
***** Version: 0.01 *****
****************************************************/
//includes
#include <pspctrl.h>
#include <pspkernel.h>
#include <stdio.h>
#define logfile "log.txt"
#define filemode "r+"
#define Xbutton "X"
#define Obutton "O"
#define TRIbutton "^"
#define SQUAbutton "[]"
#define LEFT "left"
#define RIGHT "right"
#define DOWN "down"
#define UP "up"
#define Ltrigger "L"
#define Rtrigger "R"
#define START "start"
#define SELECT "select"
#define NOTE "note"
#define SCREEN "screen"
#define VOLUP "vol+"
#define VOLDOWN "vol-"
#define HOLD "hold"
PSP_MODULE_INFO("keylogger", 0x0800, 1, 1);
//PSP_HEAP_SIZE_KB(1);
FILE *log;
void writelog(char string[])
{
fprintf(log, string);
fprintf(log, "; ");
}
int keylog()
{
SceCtrlData pad;
log = fopen(logfile, filemode);
int pressed;
sceCtrlReadBufferPositive(&pad, 1);
do
{
if(pad.Buttons & PSP_CTRL_CROSS)
{writelog(Xbutton);}
if(pad.Buttons & PSP_CTRL_CIRCLE)
{writelog(Obutton);}
if(pad.Buttons & PSP_CTRL_SQUARE)
{writelog(SQUAbutton);}
if(pad.Buttons & PSP_CTRL_TRIANGLE)
{writelog(TRIbutton);}
if(pad.Buttons & PSP_CTRL_LEFT)
{writelog(LEFT);}
if(pad.Buttons & PSP_CTRL_RIGHT)
{writelog(RIGHT);}
if(pad.Buttons & PSP_CTRL_UP)
{writelog(UP);}
if(pad.Buttons & PSP_CTRL_DOWN)
{writelog(DOWN);}
if(pad.Buttons & PSP_CTRL_LTRIGGER)
{writelog(Ltrigger);}
if(pad.Buttons & PSP_CTRL_RTRIGGER)
{writelog(Rtrigger);}
if(pad.Buttons & PSP_CTRL_START)
{writelog(START);}
if(pad.Buttons & PSP_CTRL_SELECT)
{writelog(SELECT);}
if(pad.Buttons & PSP_CTRL_NOTE)
{writelog(NOTE);}
if(pad.Buttons & PSP_CTRL_SCREEN)
{writelog(SCREEN);}
if(pad.Buttons & PSP_CTRL_VOLUP)
{writelog(VOLUP);}
if(pad.Buttons & PSP_CTRL_VOLDOWN)
{writelog(VOLDOWN);}
if(pad.Buttons & PSP_CTRL_HOLD)
{writelog(HOLD);}
pressed = pad.Buttons;
do
{sceCtrlReadBufferPositive(&pad, 1);}
while(pressed == pad.Buttons);
}
while(pad.Buttons != PSP_CTRL_HOME);
fprintf(log, "--ENDE--\n");
fclose(log);
return 0;
}
int module_start(SceSize argc, void* argp)
{return 0;}
int module_stop(SceSize argc, void* argp)
{return 0;}
release: all
#psp-build-exports -k keylogger_exp.exp
#psp-build-exports -s -k -v keylogger_exp.exp
TARGET = keylogger
OBJS = keylogger.o
INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
USE_KERNEL_LIBS=1
LIBDIR =
LIBS = -lpsplibc
LDFLAGS += -mno-crt0 -nostartfiles
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build_prx.mak
build prx=1
PRX_EXPORTS=keylogger_exp.exp
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0 , 0x8000)
PSP_EXPORT_FUNC(module_start)
PSP_EXPORT_VAR(module_info)
PSP_EXPORT_END
PSP_EXPORT_START(keylogger, 0, 0x0001)
PSP_EXPORT_FUNC(keylog)
PSP_EXPORT_END
PSP_END_EXPORTS
Die makefile ist noch nicht besonders gut, ist aber auch mein 1.plugin.
ich hoffe das hilft beim helfen
mfg D3lta
"Linux is like a tent, no windows, no gates and an apache inside."
Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2011 19:59 von D3lta.
|
|
21.03.2011 19:54 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: C: Plugin
Versuch mal, nicht libc sondern sceIo für die Logs zu verwenden.
|
|
21.03.2011 20:27 |
|
Folgende User bedanken sich: |
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Wie meinst du das?
mfg D3lta
P.S.:Lustig: Alle, die in diesem Thread gepostet haben haben ps4dev in ihrer sig setehen
"Linux is like a tent, no windows, no gates and an apache inside."
|
|
22.03.2011 15:40 |
|
|
|
anmabagima
Ex-Developer
Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 530
|
RE: C: Plugin
Hi,
anstelle fopen, fread usw. aus der standard lib zu nutzen, mit den PSP "built-in" funtkionen für files zu arbeiten also sceIoOpen, sceIoRead etc...
neben USE_KERNEL_LIBS=1 solltest du im Kernel-Mode Plugin auch USE_KERNEL_LIBC=1 nutzen...das sollte dein undefined reference problem lösen....
|
|
22.03.2011 15:58 |
|
Folgende User bedanken sich: |
|
D3lta
Experte
Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010
Status:
Abwesend
Danke erhalten: 205
|
RE: C: Plugin
Ich habe es kompiliert bekommen... Es scheint doch die -lpspuser gewesen zu sein, aber das letzte Mal hatte es nicht funktioniert... Ich werde mir mal sceIoOpen, sceIoRead etc... ansehen, doch da es noch nie meine Stärke war, Files zu benutzen habe ich lieber erst einmal die Standarts benutzt. Ich werde mein 1. Plugin jetzt testen!
mfg D3lta
EDIT: Es passiert nichts... -.-
"Linux is like a tent, no windows, no gates and an apache inside."
Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2011 16:57 von D3lta.
|
|
22.03.2011 16:17 |
|
|
|
|