PDA

Просмотр полной версии : 1с бухгалтерия...ответы на тесты


Dread
12.02.2007, 12:14
кто знает как сломать файлы екселя с макросами.........точнее нада достать ответы к вопросам от 1С Бухгалтерии!

ProTeuS
12.02.2007, 17:36
тоесть "сломать"? запароленный документ нужно открыть, или 4то?

АvataR
20.02.2007, 00:26
тоесть "сломать"? запароленный документ нужно открыть, или 4то?

Мне кажется он имел ввиду выдрать из макросов ответы....

ProTeuS
20.02.2007, 23:07
вообщем автору тема явно не нужна, гадать не будем. закрыто

ProTeuS
23.02.2007, 16:20
открыл по просьбе топикстартера

Dread
24.02.2007, 10:42
Мне кажется он имел ввиду выдрать из макросов ответы....

да ты прав полностью......пароли к макросам я уже вскрыл......а вот где там лежат ответы я не могу разобраться......



ктонить сталкивался с таким!?

Dread
01.03.2007, 11:10
неужели никто не вкурсе............?

alfaservice
03.03.2007, 14:20
неужели никто не вкурсе............?

А что сложно проверить условия ну типа


если это так тогда
так
иначе если это
не так
конецесли

во блин называется привык к 1С


if это так
так
else
не так
endif


Ну вообщем смысл я думаю понятен

Dread
12.03.2007, 13:33
Public StartTime As Long
Public CurrentTime As Long
Public TimeBeforeEnd As Long
Public Const TimeLimit = 30 * 60


Private Sub ПредыдущийЛист()
'

' Макрос записан (Вася Пупкин)
'

' Проверяем, осталось ли еще время

CurrentTime = Timer()
TimeBeforeEnd = TimeLimit - (CurrentTime - StartTime)
If TimeBeforeEnd <= 0 Then
MsgBox ("Время экзамена истекло")
UserForm1.CommandButton3.Enabled = False
UserForm1.Show
End If

For i = 1 To ActiveWorkbook.Sheets.Count - 1
ActiveWorkbook.Sheets(i).Cells(1, 12).Value = Format(Int(TimeBeforeEnd / 60), "00") + ":" + Format(TimeBeforeEnd Mod 60, "00")
Next i

i = ActiveSheet.Index
If (ActiveSheet.Index = 1) Then
GoTo Out
Else
Sheets(ActiveSheet.Index - 1).Select
End If
Out:
End Sub

Private Sub СледующийЛист()
'

' Макрос записан (Вася Пупкин)
'
' Проверяем, осталось ли еще время

CurrentTime = Timer()
TimeBeforeEnd = TimeLimit - (CurrentTime - StartTime)
If TimeBeforeEnd <= 0 Then
MsgBox ("Время экзамена истекло")
UserForm1.CommandButton3.Enabled = False
UserForm1.Show
End If

For i = 1 To ActiveWorkbook.Sheets.Count - 1
ActiveWorkbook.Sheets(i).Cells(1, 12).Value = Format(Int(TimeBeforeEnd / 60), "00") + ":" + Format(TimeBeforeEnd Mod 60, "00")
Next i


'
If (ActiveSheet.Index >= Sheets.Count - 1) Then
GoTo Out
Else
Sheets(ActiveSheet.Index + 1).Select
End If
Out:
End Sub

Private Sub Закончить()
Dim Results(14) As String
Dim Person(6) As String
Dim Ans As String

Results(0) = "Вопрос" + Chr(9) + "Ответ"

With ActiveWorkbook.Sheets("Ответы")
For i = 1 To ActiveWorkbook.Sheets.Count - 1
If .Cells(22, i + 1).Value = "" Then
Ans = "НЕТ"
Else
Ans = Format(.Cells(22, i + 1).Value, "0")
End If
Results(i) = Format(.Cells(21, i + 1), " 0000") + Chr(9) + " " + Ans
Next
Person(0) = .Cells(2, 3).Value
Person(1) = .Cells(3, 3).Value
Person(2) = .Cells(4, 3).Value
Person(3) = ""
Person(4) = "Задание N" + Format(.Cells(1, 3).Value, "000000")
Person(5) = "Код АЦС " + .Cells(16, 3).Value
Person(6) = "Дата " + Format(.Cells(18, 2).Value, "Short date")
UserForm1.Person.List = Person

'Chr(10) + .Cells(3, 3).Value + Chr(10) + _
'.Cells(4, 3).Value Chr(10) + "Код АЦС " + .Cells(16, 3).Value + Chr(10) _
'+ "Дата " + .Cells(17, 3).Value
UserForm1.Caption = "1C:Профессионал. Задание N" + Format(.Cells(1, 3).Value, "000000")
End With
UserForm1.Results.List = Results
UserForm1.Show
End Sub
Private Sub Auto_Open()
Dim Person As String

With ActiveWorkbook.Sheets("Ответы")
Person = .Cells(2, 3).Value + " " + .Cells(3, 3).Value + " " + .Cells(4, 3).Value
UserForm2.Caption = "1C:Профессионал. Версия " + CStr(.Cells(1, 6)) + _
" Задание N" + Format(.Cells(1, 3).Value, "000000")
End With
UserForm2.Person.Caption = Person

UserForm2.Show
End Sub

нихчего не могу понять.....где могут лежать пароли!

alfaservice
13.03.2007, 14:47
Вот дополнение к твоему куску

Из модуля формы UserForm1


'Проверка ответов
N = 0
For i = 2 To ActiveWorkbook.Sheets.Count
A = ActiveSheet.Cells(20, i)
B = ActiveSheet.Cells(22, i)
C = ActiveSheet.TextBoxNum.Value
If (((A * B) + (A + B + B)) * C) = ActiveSheet.Cells(24, i) Then 'Cells(24 +1 26.08.04
ActiveSheet.Cells(24, i).Value = "+"
N = N + 1
Else
ActiveSheet.Cells(24, i).Value = "-"
End If
Next
ActiveSheet.Cells(25, 2).Value = N
If (N >= CDec(ActiveSheet.TextBoxOtv.Value)) Then
ActiveSheet.Cells(26, 1).Value = "Тест СДАН"
Else
ActiveSheet.Cells(26, 1).Value = "Тест НЕ СДАН"
End If


Расчет правильных ответов идет примерно так
В цикле
Проверяются строки 20 и 22 начиная со второй колонки (листа ответы)
Вот если это выражение (((A * B) + (A + B + B)) * C) = ActiveSheet.Cells(24, i)
тогда ответ правильный

alfaservice
22.03.2007, 09:25
неужели никто не вкурсе............?

Все что заключено в # добавил я

Начнем ломать!!!!!!!!

************************************************** ************************************************** **************
В модуле формы UserForm2

после 'Устанавливаем время

Переделываем строку
If (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value = "") Then

В
#
If (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value = "") Or (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value <> "") Then
#

Для того чтобы не было ругани насчет того что несколько раз проходить один и тот-же тест нельзя
************************************************** ************************************************** **************

************************************************** ************************************************** **************
Дальше

В модуле формы UserForm1

после
C = ActiveSheet.TextBoxNum.Value

добавляем
#
H = ActiveSheet.Cells(24, I)
#
Затем после
If (((A * B) + (A + B + B)) * C) = ActiveSheet.Cells(24, I) Then 'Cells(24 +1 26.08.04
ActiveSheet.Cells(24, I).Value = "+"
N = N + 1
Else
ActiveSheet.Cells(24, I).Value = "-"
End If

Добавим
#
J = (H / C - A) / (A + 2) ' Вот собственно формула обратного расчета т.е J должна быть = правильному ответу
ActiveSheet.Cells(29, I) = J ' Собственно здесь в цикле в каждую ячейку 29 строки листа "ответы" добавляем правильный ответ
#
Вобщем во время прохождения теста можно и не отвечать на вопросы, ответы все равно будут проставлены, только при условии
что в 24 строке стоят цифры, а ни минусы или плюсы

После коментируем строку

ActiveWorkbook.Save

Должно получиться

'ActiveWorkbook.Save
Это чтобы после окончания теста результаты не сохранялись

************************************************** ************************************************** **************
Теперь самое важное
С листа "ответы" в обязательном порядке нужно снять защиту
чтобы ответы могли проставится в 29 строке


Да и еще значение "С" мне впринципе больше и не нужно. гыыыыыыыы )))))))))))))))))))))

************************************************** ************************************************** **************
Ну вот и все удачного взлома))))))))))))))))))))))
************************************************** ************************************************** **************