Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Фрикинг > Пластиковые карты

Пластиковые карты Магнитные карты, смарт карты, таксофонные карты и тд.

Ответ
 
Опции темы
Старый 29.01.2011, 09:55   #1
olega1988
Заблокирован
 
Регистрация: 15.12.2010
Сообщений: 112
Поблагодарил: 0
Поблагодарили 10 раз в 9 сообщениях
olega1988 стоит на развилке
По умолчанию Писалка для новичков

Немного почитавши книгу Гегеля решил и написал писалку для карт, в коде вроде все правильно но всеравно выдает ошибку. Путем модернизаций и других эксперементов сделал более оптимальным, по скольку програмированием занимался крайний раз в школе с меня щас будут трещать но оно всеравно работает.
Распиновка lpt
25 земля
8 выход данных на запись.
10 вход оптопары

program vvv;
uses crt;

var i,a:integer;
f:text;
b:string
begin;
clrscr;
port[888]:=0;
a:=0; i:=0;
writeln('vvedite dlinu fronta',a);
readln(a);
Assign(f,'f.txt');reset(f);

while not eof(f) do begin
readln(f,b);

For i:=0 to Length(b)-1 do begin
if b[i]='0' then {если 0} begin
if port[888]=255 then port[888]:=0; delay(a);
if port[888]=0 then port[888]:=255; delay(a);
end;
if b[i]='1' then {если =1} begin
if port[888]=255 then port[888]:=0; delay(a); port[888]:=255; delay(a*2);
if port[888]=0 then port[888]:=255; delay(a); port[888]:=0; delay(a*2);
end;
end;

end;
close(f);

f.txt бинарный текстовый файл, длинна фронта подбирать самому, прерыватель сделал из обычной оптопары, в дальнейшем их будет 2
Миниатюры
ИЗОБРАЖЕ.JPG  

Последний раз редактировалось olega1988; 29.01.2011 в 10:28.
olega1988 вне форума   Ответить с цитированием
Старый 29.01.2011, 10:23   #2
Piratcom
продвинутый фрикер
 
Аватар для Piratcom
 
Регистрация: 16.02.2008
Сообщений: 1,710
Поблагодарил: 127
Поблагодарили 268 раз в 177 сообщениях
Piratcom стоит на развилке
По умолчанию

Вот исходники моего проекта, на AVR, подключаете клавиатуру, вбиваете что надо, номер карты, дату и т.д. жмёте на кнопку и проводите картой, только немного не доделан, некогда, вобщем кому надо доведёт до ума, Да, проекта для proteusa тоже почему-то нет, видать удалил, соберите схему и посмотрите, если не ошибаюсь то перекодированные символы запишуться в eeprom.
Вложения
Тип файла: rar WriteCardPiratcom.rar (55.0 Кб, 110 просмотров)


Если вас мучает совесть по ночам - спите днем!
------------------------------------------------------------
Если ты обманываешь людей, будь готов к тому что когда - нибудь тебе придётся сесть в тюрьму...
Piratcom вне форума   Ответить с цитированием
Старый 05.02.2011, 17:45   #3
olega1988
Заблокирован
 
Регистрация: 15.12.2010
Сообщений: 112
Поблагодарил: 0
Поблагодарили 10 раз в 9 сообщениях
olega1988 стоит на развилке
По умолчанию

Более свежий вариант, показует ошибку и номер бита во время которого карта вышла, а запись продолжается. Когда допижу сделаю нормальный виндовский вариант.
program vvv;
uses crt;

var i,a:integer;
f:text;
b:string;
begin;
clrscr;
port[888]:=0;
a:=0; i:=0;
writeln('vvedite dlinu fronta',a);
readln(a);
Assign(f,'f.txt');reset(f);
writeln('vstavte karty b nazmite lubyu knopky'); readkey;
while not eof(f) do begin
readln(f,b); if port[889]=0 then

For i:=0 to Length(b)-1 do begin
if b[i]='0' then {если 0} begin
if port[888]=255 then port[888]:=0; delay(a*2);
if port[888]=0 then port[888]:=255; delay(a*2); writeln(i); if port[889]=0 then writeln('karta vishla , erorr');
end;
if b[i]='1' then {если =1} begin
if port[888]=255 then port[888]:=0; delay(a); port[888]:=255; delay(a);
if port[888]=0 then port[888]:=255; delay(a); port[888]:=0; delay(a); writeln(i);if port[889]=0 then writeln('vishla,eror');
end;
end;
port[888]:=0;
end;
writeln(b);
writeln('operation complite, pres any key to exit'); readkey;
close(f)
end.

Незнаете если вместо усилка взять мафан, к головке прикрутить порт а вместо колонок голову, выкрутить 10w запишет? Просто хрен его где брать 2полярное питание.
olega1988 вне форума   Ответить с цитированием
Старый 14.08.2011, 12:10   #4
olega1988
Заблокирован
 
Регистрация: 15.12.2010
Сообщений: 112
Поблагодарил: 0
Поблагодарили 10 раз в 9 сообщениях
olega1988 стоит на развилке
По умолчанию

На днях было нехрен делать, ну и сочинил ридер под 6541, кому охота поколупатса в чужих багах и глюках пожалуста, мне нежалко.

program t85;

var
w,i:integer; k, a:byte; sek, min,hour:char; ko:integer;

var Soft_I2C_Scl_Output : sbit at PORTb1_bit;
Soft_I2C_Sda_Output : sbit at PORTb2_bit;
Soft_I2C_Scl_Input : sbit at PINb1_bit;
Soft_I2C_Sda_Input : sbit at PINb2_bit;
Soft_I2C_Scl_Direction : sbit at DDb1_bit;
Soft_I2C_Sda_Direction : sbit at DDb2_bit;
// End Software I2C connections}


procedure timer; org 0x0005;
begin

inc(ko);
if ko=3906 then begin inc(sek); ko:=0 ; end;
if sek=60 then begin inc(min); sek:=0; end;
if min=60 then begin inc(hour); min:=0; end;

end;

procedure lststop; // записать неполную страницу
begin
soft_i2c_Stop(); i:=i+a; Delay_ms(15); ddrb.b0:=0; //led off
end;


function lbr():integer; //читает адрес последнего байта

begin

soft_i2c_Start(); // issue TWI start signal
soft_i2c_write(0xA0); // send byte via TWI (device address + W)
soft_i2c_write(0 shr 8);
soft_i2c_write(0);

soft_i2c_Start();
soft_i2c_write(0xA0 or 1);
hi(lbr):=soft_i2c_read(0);
soft_i2c_stop();
Delay_ms(20);

soft_i2c_Start(); // issue TWI start signal
soft_i2c_write(0xA0); // send byte via TWI (device address + W)
soft_i2c_write(1 shr 8);
soft_i2c_write(1);

soft_i2c_Start();
soft_i2c_write(0xA0 or 1);
lo(lbr):=soft_i2c_read(0);
soft_i2c_stop();
Delay_ms(20);


end;


function wrlsadr(nb:integer):integer; //last byte adress write

begin

soft_i2c_Start(); // issue TWI start signal
soft_i2c_write(0xA0); // send byte via TWI (device address + W)

soft_i2c_write(0 shr 8);
soft_i2c_write(0);
soft_i2c_write(hi(nb));
soft_i2c_write(lo(nb));
soft_i2c_Stop(); // issue TWI stop signal

Delay_ms(20);

wrlsadr:=0;

end;


function wrtlist(list:byte):byte; // все что загониш,функция пишет страницами

begin
if (a<>0) then begin soft_i2c_write(list); inc(a); end;
if a=0 then begin
ddrb.b0:=1; //led on

soft_i2c_Start(); // issue TWI start signal
soft_i2c_write(0xA0); // send byte via TWI (device address + W)

soft_i2c_write(i shr 8);
soft_i2c_write(i);

soft_i2c_write(list);
inc(a);
exit;
end;
if a=128 then begin i:=i+a; a:=0; soft_i2c_Stop(); Delay_ms(15); end; // записать полную страницу

wrtlist:=i; // возвратит счетчк писаных байт

end;



procedure ArmToRead; // запускаем асик
begin
DDb4_bit:=1; DDb3_bit:=1; // pin3-data все на выход

portb.b4:=1;
delay_us(3);
portb.b3:=0;
delay_us(3);
portb.b4:=0;
delay_us(3);
portb.b4:=1;
delay_us(3);
portb.b4:=0;
delay_us(3);



DDb3_bit := 0; //DATA_RELEASE; data на вход


delay_us(3);
portb.b4:=1;
delay_us(3);
portb.b4:=0;
delay_us(3);
portb.b4:=1;
delay_us(3);
portb.b4:=0;


//ждемc пока асик положет дату
while (PINb3_bit=1)do begin end;

// и маячим клоком асику что готовы


delay_us(3);
portb.b4:=1;
delay_us(3);


// ждем пока асик опустит data
//delay_ms(3000);
while (PINb3_bit=1) do begin end;
end;


procedure write;

begin



for w:=0 to 16 do
begin //пропускаем сигнатуру
portb.b4:=1; delay_us(3);
portb.b4:=0; delay_us(3);
end;

//wrtlist('t'); wrtlist('1'); wrtlist(':'); //write 1 track
for w:=0 to 700 do
begin
portb.b4:=1; delay_us(3);
portb.b4:=0; delay_us(3);
end;

wrtlist('t'); wrtlist('2'); wrtlist(':'); //write 2 track
for w:=0 to 253 do
begin
portb.b4:=1; delay_us(3);
portb.b4:=0; delay_us(3);

if pinb3_bit=1 then wrtlist('1');
if pinb3_bit=0 then begin wrtlist('0'); inc(k); end;
if k=40 then begin i:=i-35; k:=0; break; end; // если дохуя нулей значит прочитали неполностью , то выйти
end;

wrtlist(32); wrtlist('t'); wrtlist(hour); wrtlist(min); wrtlist(sek);
//wrlsadr(i);


end;



begin

// for w:=0 to 1 do begin DDb0_bit:=1; delay_ms(500); DDb0_bit:=0; delay_ms(500); end; // блым блым



soft_i2c_init();
Delay_ms(300);
w:=0; a:=0; i:=0; k:=0;
ko:=0; sek:=0; min:=0; hour:=0;

//i:=lbr(); // xчитаем крайн.. ячейку
//if i=255 then begin wrlsadr(0); i:=i+2; end; // если память затерли прогером
//if i=0 then begin i:=i+2; wrlsadr(i); end;
Delay_ms(300);

//for w:=0 to 6460 do begin wrtlist(255); end; lststop; wrlsadr(0); i:=0; // чистить память




// Analog Comparator initialization
// Analog Comparator: Off
ACSR:=0x80;
ADCSRB:=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A:=0x00;
TCCR0B:=0x01;
TCNT0:=0x00;
OCR0A:=0x00;
OCR0B:=0x00;

TOIE0_bit:=1;

sm1_bit:=0; sm0_bit:=0; SE_bit := 1; //sleep bit reg

asm sei end;


while true do
begin

ArmToRead; delay_ms(1000);
// asm sleep end;
asm cli end;
write;
lststop;
asm sei end;
end;
end.

Последний раз редактировалось olega1988; 14.08.2011 в 12:26.
olega1988 вне форума   Ответить с цитированием
Старый 30.08.2011, 21:20   #5
giovanni
Заблокирован
 
Регистрация: 30.08.2011
Сообщений: 3
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
giovanni стоит на развилке
По умолчанию

что такое писалка?
giovanni вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скиммер для новичков. oleg Пластиковые карты 1127 23.03.2013 22:49
Криптография для новичков. oleg Новички 64 16.01.2011 11:17
Писалка для PCF7931 ? 1qaz Иммобилайзеры. 2 21.03.2007 12:35


Текущее время: 21:45. Часовой пояс GMT +4.


Перевод: zCarot