![]() |
eXeL@B —› Вопросы новичков —› Bypass logon on this software (russian version too) |
Посл.ответ | Сообщение |
|
Создано: 09 апреля 2007 19:19 · Личное сообщение · #1 Hi guys. I'm trying to do something that I think it should be really easy but since I'm a begginer, I'm having some trouble. Here's the thing: I found a Delphi Developed Software. This software is a brazilian software for money management. The database used in it is Paradox. I'm trying to log on on the program but I don't have the user password wich is inside the "Usuarios.DB" table. The table is password protected. I discovered the password with ollydgb: 'ptvascao' (lowercase without quotes). After opening this table with "Database Desktop" (comes with Delphi), I looked into the "senha" field ("senha" means "password" in portuguese). The password is a number field. But when I try to logon the user says the password is invalid. So I'm thinking this system does some kind of calculation with that number. There's two options for me: 1) Modify some code so that any password typed would result in a sucessful login. 2) Modify some code so that the program initialize logged with "master" user ("master" user is inside the table too). I tried to do both already with hours and hours of analysing the code with OllyDbg and PE Explorer but nothing worked. So, could you help me with this? Here's the link to download the program: rapidshare.com/files/25113333/PBS.rar.html By the way: It Should be installed under "C:\PBS\Gefin". Otherwise it won't work. Well... It will if we modify some code too... ![]() Here's a russian version of this post translated using altavista's babelfish software. I know it is probably terrible, but it is something... Hi ванты. Я пытаюсь сделать что-то что я думаю должно быть реально легко но в виду того что я буду begginer, я имею некоторую тревогу. Здесь вещь: Я нашел средство программирования начатое delphi. Этим средством программирования будет бразильское средство программирования для управления деньг. Базой данных используемой в ей будет парадокс. Я пытаюсь log on на программе но я не имею потребителя wich пароля, котор будет внутренность таблица "Usuarios.DB". Таблица будет защищенным паролем. Я открыл пароль с ollydgb: ' ptvascao ' (строчное без quotes). После того как раскрывающ эту таблицу с "desktop базы данных" (приходит с delphi), я посмотрел в полем "senha" ("senha" намеревается "пароль" в португалке). Паролем будет поле номера. Но когда я пытаюсь logon потребитель говорит пароль инвалидн. Так я думаю эта система делает некоторый вид вычисления с тем номером. 2 варианта для меня: 1) дорабатывает некоторое Кодего так НОП любой напечатанный на машинке пароль привел бы к в sucessful login. 2) дорабатывает некоторое Кодего так, что программа выступит после того как с иничиативой она внесена в журнал с "мастерский" потребитель (потребителем "оригинала" внутри таблицы слишком). Я попытался сделать оба уже с часами и часами анализировать Кодего с OllyDbg и исследователем PE но ничего работало. Так, смогли вы помочь мне с этим? Здесь соединение для того чтобы download программа: rapidshare.com/files/25113333/PBS.rar.html By the way: Оно должен быть установлен под "C:\PBS\Gefin". В противном случае оно не будет работать. Добро... Оно будет если мы дорабатываем некоторое Кодего слишком... ![]() |
|
Создано: 09 апреля 2007 21:47 · Личное сообщение · #2 |
|
Создано: 10 апреля 2007 18:38 · Личное сообщение · #3 Hi! Thanks for helping me. But I couldn't do it. I didn't find the place to modify the code. I don't know how to search an offset. Actually, I doesn't even know what is an offset. Could you give me some more detailed explanation? Where (what address) this comparisson is made? And how did you discover this? I would like to learn it so that I can do this by myself next time. Actually, I have another program with the same problem. Solution would be the same. How did you find the place where the comparisson is made? Using breakpoints, right? And how did you know where to put the breakpoints? How did you know where is the code for the OnKeyPress or the OnKeyDown event (comparisson is made there, right?)? If you can't speak english (or don't want to) you could explain in russian. I can try to translate it. Again, thanks for helping. --- Hi! Спасибо за помогать мне. Но я не смог сделать его. Я не нашел место для того чтобы доработать Кодего. Я не умею как искать смещение. Фактическ, I даже не знает будет смещением. Смогли вы дать мне some more детальное объяснение? Где (что адрес) это comparisson делает? И как вы открыли это? Я хотел был бы выучить его так, что я смогу сделать это собой следующее время. Фактическ, я имею другую программу с такой же проблемой. Разрешение было бы этим же. Как вы нашли место где comparisson сделано? Использование breakpoints, право? И как вы знали где положить breakpoints? Как вы знали где Кодий для OnKeyPress или случая OnKeyDown (comparisson сделано там, справедливо?)? Если вы не можете поговорить английскую язык, то (или не те) вы смогли объяснить на русском языке. Я могу попытаться перевести его. Опять, спасибо за помогать. --- bye. ![]() |
|
Создано: 10 апреля 2007 22:57 · Личное сообщение · #4 user27 ok. at first download FlexHEX (it's for patching), W32Dasm (it's for disassembling). open file in w32dasm then search->find text, write the error text there and it'll show you the place(you need the 2nd one) then go up till you find jn or jnz etc command that jumps through the message, it'll by 580cda addr, now look to the status bar(it's in the loover side) there is offset... then open this file in FlexHEX, press Ctrl+g and enter your offset and change 74 to 75 (74 is jn opcode and 75 in jnz opcode), save and use p.s. huh, i've remembered english a little bit ![]() ![]() |
|
Создано: 11 апреля 2007 17:41 · Личное сообщение · #5 Thanks again for your help. FlexHex was not finding the offset specified. I tried all the options but FlexHex didn't show me the place I wanted. The good news is that with your instructions I could make it with OllyDbg and I also did it with another program. But now, I bring another challenge. After I succesfully modified last exe, I was thinking: "What if we couldn't find the error message?". So I made two login samples. In both, you won't find the error messages (as you can try). Both projects use Firebird database. So, let's say we recognize their database as firebird database and we open this database with a tool like IBOConsole. We'll see the USERS table with username and password. In both projects the password is encrypted. In the second one the username is also encrypted. First project: We know at least one username: "master" (as we saw in the users table) but we don't know the password. The solution would be look for the error message but we can't find it's text with ollydbg or w32dasm. So, what could be done in this situation? Second project: Same as first project except that the username is also encrypted in the database. The solution would be the same. But in this case, any user and any password would result in a sucessfuly login. But... What if whe username is connected somewhere with something else? I mean, what if I have to login with a valid username (otherwise the program wouldn't load the correct profile or something like that)? What could be done in this situation? Solutions for these two samples? Sample projects can be downloaded here (1,35Mb): rapidshare.com/files/25431404/LoginSamples.rar.html Thanks for helping. Спасибо снова за вашу помощь. FlexHex не считало смещение после того как оно определено. Я попытался все варианты но FlexHex не показало мне место, котор я хотел. Хорошая весточка то с вашими инструкциями, котор я смог сделать его с OllyDbg и я также сделал его с другой программой. Но теперь, я приношу другую возможность. После того как я succesfully доработал последнее exe, я думал: "если мы не смогли найти сообщение ошибки?". Так я сделал 2 образца login. В обоих, вы не найдете сообщения ошибки (по мере того как вы можете попытаться). Оба проекта используют базу данных Firebird. Так, let's сказать мы узнает их базу данных по мере того как база данных и мы firebird раскрываем эту базу данных с инструментом как IBOConsole. Мы увидим таблицу USERS с username и паролем. В обоих проектах пароль encrypted. В второе одном username также encrypted. Первый проект: Мы знаем по крайней мере один username: "оригинал" (по мере того как мы увидели в таблице потребителей) только мы не знаем пароль. Разрешение было бы look for сообщение ошибки но мы не можем найти его будем текстом с ollydbg или w32dasm. Так, было в состоянии быть сделано в этой ситуации? Второй проект: Такие же как сперва проектируют except that username также encrypted в базе данных. Разрешение было бы этим же. Но in this case, любой потребитель и любой пароль привели бы к в sucessfuly login. Но... Если username whe соединен где-то с something else? Я намереваются, если я login с действительным username, то (в противном случае программа не нагрузили бы правильно профиль или что-то как то)? Было в состоянии быть сделано в этой ситуации? Разрешения для этих 2 образцов? Проекты образца можно downloaded здесь (1,35Mb): rapidshare.com/files/25431404/LoginSamples.rar.html Спасибо за помогать. ![]() |
|
Создано: 13 апреля 2007 13:57 · Личное сообщение · #6 ok. this time we need only ollydbg run the prog under olly, and set breakpoint to MessageBoxA procedure. when you're on press Ctrl+F9(execute till return), then look upper till u see conditional jump command that jumps thrue the message call. it's 00484C34 |. 74 5C JE SHORT Sample1.00484C92, it's working on both projects, and you don't need to know username!!! ![]() user27 пишет: But... What if whe username is connected somewhere with something else? I mean, what if I have to login with a valid username (otherwise the program wouldn't load the correct profile or something like that)? What could be done in this situation? write such a project? and i'll try to revers it ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Bypass logon on this software (russian version too) |