Русский / Russian English / Английский

Сейчас на форуме: soft, Bad_guy, Znoy (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Крэки, обсуждения —› FoxPro
Посл.ответ Сообщение

Ранг: 6.2 (гость)
Статус: Участник

Создано: 21 ноября 2004 14:02 New!
Цитата · Личное сообщение · #1

Есть программа на FoxPro. Регистрация зависит от UIN, который генерируется от харддиска.
Есть кусок где идет проверка:

lregno = IIF(nregno = VAL(SYS(2007, *error*(this.snhard + SYS(1277, "This.SNHard"), (BITXOR(nregno, VAL(this.snhard)))), 1)), .T., .F.)
!_err=0xBB_! 266
smaskstring = "0123456789ABCDEF"
nmask = LEN(smaskstring)
FOR i = 1 TO nmask
this.snhard = CHRTRAN(this.snhard, SUBSTR(smaskstring, i, 1), SUBSTR(smaskstring, nmask - i, 1))
ENDFOR
lregno = IIF(nregno = VAL(SYS(2007, this.snhard + "71", 1, 1)), .T., lregno)
!_err=0xBE_!
RETURN lregno

snhard это ID хардиска
nreno это введенный рег код.
непонятно что означает this.
при попытке компилирования этого кода, выпадает ошибка что строчка:
lregno = IIF(nregno = VAL(SYS(2007, *error*(this.snhard + SYS(1277, "This.SNHard"), (BITXOR(nregno, VAL(this.snhard)))), 1)), .T., .F.)

Missing Operand.

кто сечет в фоксе, может объяснить мне че ему нуно ?

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 22 ноября 2004 00:39 · Поправил: RideX New!
Цитата · Личное сообщение · #2

BiSHEP пишет:
непонятно что означает this

Ссылка на текущий объект для события, процедуры, свойства.
Может попробовать убрать this, а переменную просто snhard определить в начале модуля как строковую, snhard = ""?
Может snhard встречается ещё в каком-нибудь модуле, а здесь указывается имеено на эту?

Ранг: 160.1 (ветеран)
Статус: Участник

Создано: 22 ноября 2004 00:52 New!
Цитата · Личное сообщение · #3

возьми нормальный декомпилер. Вот этого быть не должно
!_err=0xBB_! 266

Ранг: 6.2 (гость)
Статус: Участник

Создано: 22 ноября 2004 05:59 New!
Цитата · Личное сообщение · #4

Прога с encr I+ декомпилировал с помощью ReFox MMII и тулзой Derefox c функцией Cheat Password.

При дебаге строчке !_err=0xBB_! 266 запускается какой-то .pif и трэйсится дальше.

В начале модуля стоит snhard = "" потом в него заносится ID харда = 694707048860

интересно узнать как действует строчка
IIF(nregno = VAL(SYS(2007, *error*(this.snhard + SYS(1277, "This.SNHard"), (BITXOR(nregno, VAL(this.snhard)))), 1)), .T., .F.)

непонятно...что с чем сравнивается и что возврощается

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 22 ноября 2004 07:59 New!
Цитата · Личное сообщение · #5

BiSHEP
Попробуй декомпилировать UnFoxAll 3 Professional, может он без ошибок декомпилирует, взять можно на васме в разделе декомпилеров с этой страницы wasm.ru/toollist.php?list=18
Я им пользовался, отзывы положительные

IIF возвращает одно из двух значений, в зависимости от значения данного логического
выражения.

Функция SYS(2007)возвращает значение контрольной суммы символьного выражения, что-то вроде CRC строки.

BITXOR(nregno, VAL(this.snhard)) возвращает результат побитовой операции исключающего ИЛИ (XOR), выполненной над двумя числовыми значениями.

SYS(1277) не знаю что такое Может что-то из Fox'a последних версий, у меня только 6 версии где-то валяется, новее нет.

BiSHEP пишет:
что с чем сравнивается и что возврощается

Наверное так:
if nregno == VAL(...)
lregno = TRUE;
else
lregno = FALSE;

Ранг: 6.2 (гость)
Статус: Участник

Создано: 22 ноября 2004 08:11 New!
Цитата · Личное сообщение · #6

Пробовал я UnFox, но файл branded и он его не декомпилит

не мож подсказать че ему не хватает в строчке
IIF(nregno = VAL(SYS(2007, *error*(this.snhard + SYS(1277, "This.SNHard"), (BITXOR(nregno, VAL(this.snhard)))), 1)), .T., .F.)

пишет Missing Operand...все попробовал и там скобку и сям, но нихуя

Ранг: 6.2 (гость)
Статус: Участник

Создано: 22 ноября 2004 08:45 New!
Цитата · Личное сообщение · #7

Так с помощью Corso 5.1 снял крипто, засэйвил файл, Refox его неберт, а UnFoxAll показал эти строчки вот так:

PROCEDURE CheckReg
* ??? UNKNOWN COMMAND WORD: [$BAH]
LREGNO = ;
IIF(NREGNO = ;
VAL(SYS(2007 / ;
ACCESS(THIS.SNHARD + SYS(1277,'This.SNHard'),(BITXOR(NREGNO,VAL(THIS.SNHARD)))),1)),.T.,.F. )
* ??? UNKNOWN COMMAND WORD: [$BBH]
SMASKSTRING = '0123456789ABCDEF'
NMASK = LEN(SMASKSTRING)
FOR I = 1 TO NMASK
THIS.SNHARD = ;
CHRTRAN(THIS.SNHARD,SUBSTR(SMASKSTRING,I,1),SUBSTR(SMASKSTRING,NMASK - I,1))
ENDFOR
LREGNO = IIF(NREGNO = VAL(SYS(2007,THIS.SNHARD + '71',1,1)),.T.,LREGNO)
* ??? UNKNOWN COMMAND WORD: [$BEH]
RETURN LREGNO
ENDPROC

Фокс терь, бля, пиздит на ту строчку что Too many arguments

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 22 ноября 2004 08:56 New!
Цитата · Личное сообщение · #8

Я блин тоже не знаю Просто сталкивался несколько раз с Фоксовскими прогами, а сам Фокс не знаю.

Вместо *error*(...) что может быть, даже не знаю...
Ещё только что в Гугле набрал "FoxPro SYS(1277)", тоже ничего нет, получается что такой ф-ции тоже нет

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 22 ноября 2004 09:01 New!
Цитата · Личное сообщение · #9

Теперь не могу найти что такое ACCESS() и SYS(1277)

Ранг: 0.0 (гость)
Статус: Участник

Создано: 11 декабря 2004 16:13 New!
Цитата · Личное сообщение · #10

Вот связался с этой же программкой и тоже застрял на ACCESS() и SYS(1277) Кому-нибудь удалось понять, что они делают?

А неизвестные рефоксу коды 0xBA 0xBB 0xBE - это скорее всего соответственно TRY-CATCH-ENDTRY

Ранг: 5.0 (гость)
Статус: Участник

Создано: 10 февраля 2005 07:22 New!
Цитата · Личное сообщение · #11

Обычно енто делается так:
IF .NOT. ALLTRIM(SYS(2007, ;
SYS(2007, ALLTRIM(<вводимый пароль>)))) == ;
ALLTRIM(<Контрольная сумма контрольной суммы>)
IF .NOT. MESSAGEBOX('Повторить попытку?',036,'Неверный пароль')=6
thisform.release
ENDIF

чтобы енту херь вскрыть делается так:

for i=1 to 99999999
IF ALLTRIM(SYS(2007, ;
SYS(2007, ALLTRIM(str(i))))) == ;
ALLTRIM(<Контрольная сумма контрольной суммы>)
? 'Наш пароль: '+str(i)
endif
endfor

вчем фишка конторольная сумма это число DWORD и одно значение равно разным комбинациям, взлом осуществляется в течении 45 секунд самых навороченных паролей (проверено не раз)

а в твоем случаи надо просто воткнуть вместо ентого всего:
lregno = .F.
RETURN lregno
 eXeL@B —› Крэки, обсуждения —› FoxPro

Видеокурс ВЗЛОМ