Просмотр полной версии : 1с бухгалтерия...ответы на тесты
кто знает как сломать файлы екселя с макросами.........точнее нада достать ответы к вопросам от 1С Бухгалтерии!
тоесть "сломать"? запароленный документ нужно открыть, или 4то?
тоесть "сломать"? запароленный документ нужно открыть, или 4то?
Мне кажется он имел ввиду выдрать из макросов ответы....
вообщем автору тема явно не нужна, гадать не будем. закрыто
открыл по просьбе топикстартера
Мне кажется он имел ввиду выдрать из макросов ответы....
да ты прав полностью......пароли к макросам я уже вскрыл......а вот где там лежат ответы я не могу разобраться......
ктонить сталкивался с таким!?
неужели никто не вкурсе............?
alfaservice
03.03.2007, 14:20
неужели никто не вкурсе............?
А что сложно проверить условия ну типа
если это так тогда
так
иначе если это
не так
конецесли
во блин называется привык к 1С
if это так
так
else
не так
endif
Ну вообщем смысл я думаю понятен
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 строке
Да и еще значение "С" мне впринципе больше и не нужно. гыыыыыыыы )))))))))))))))))))))
************************************************** ************************************************** **************
Ну вот и все удачного взлома))))))))))))))))))))))
************************************************** ************************************************** **************
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot