Виж темите без отговор | Виж активните теми
Дата и час: Пет Апр 19, 2024 6:31 pm
Автор |
Съобщение |
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 6:26 pm Мнения: 608
|
Re: ChatGPT
Реверсвам един код и ... Тука вече паднах от стола ... АЗ Можеш ли да транслираш следния код на езика C | | | | Код: .text:00404454 ; =============== S U B R O U T I N E ======================================= .text:00404454 .text:00404454 ; Attributes: bp-based frame .text:00404454 .text:00404454 sub_404454 proc near ; CODE XREF: sub_4042D0+85↑p .text:00404454 .text:00404454 var_8 = dword ptr -8 .text:00404454 var_4 = dword ptr -4 .text:00404454 arg_0 = dword ptr 8 .text:00404454 arg_4 = dword ptr 0Ch .text:00404454 .text:00404454 push ebp .text:00404455 mov ebp, esp .text:00404457 add esp, 0FFFFFFF8h .text:0040445A xor eax, eax .text:0040445C mov [ebp+var_8], eax .text:0040445F mov edx, [ebp+arg_4] .text:00404462 dec edx .text:00404463 mov [ebp+var_4], edx .text:00404466 jmp short loc_404485 .text:00404468 ; --------------------------------------------------------------------------- .text:00404468 .text:00404468 loc_404468: ; CODE XREF: sub_404454+3A↓j .text:00404468 mov ecx, [ebp+arg_0] .text:0040446B xor eax, eax .text:0040446D mov al, [ecx] .text:0040446F add [ebp+var_8], eax .text:00404472 inc [ebp+arg_0] .text:00404475 test byte ptr [ebp+var_8+1], 1 .text:00404479 jz short loc_404485 .text:0040447B and [ebp+var_8], 0FFh .text:00404482 inc [ebp+var_8] .text:00404485 .text:00404485 loc_404485: ; CODE XREF: sub_404454+12↑j .text:00404485 ; sub_404454+25↑j .text:00404485 mov edx, [ebp+var_4] .text:00404488 add [ebp+var_4], 0FFFFFFFFh .text:0040448C test edx, edx .text:0040448E jnz short loc_404468 .text:00404490 mov al, byte ptr [ebp+var_8] .text:00404493 and al, 0FFh .text:00404495 pop ecx .text:00404496 pop ecx .text:00404497 pop ebp .text:00404498 retn .text:00404498 sub_404454 endp .text:00404498 .text:00404498 ; --------------------------------------------------------------------------- .text:00404499 align 4 .text:0040449C .text: | | | | |
ТОЙ Да, мога да транслирам този код на езика C. Ето го транслираният код: c Copy code Това е функция, която сумира символите на символен низ от дължина arg_4 и връща резултата модул 256. АЗ Имаш само една грешка реда while (var_4 >= 0) трябва да е while (var_4 > 0) Поздравления. ТОЙ Благодаря Ви за отбелязването на грешката! Действително, в условието на цикъла while, трябва да се използва операторът > вместо >=, тъй като arg_4 се намалява с 1 на ред 0x00404462 и съответно низът има дължина arg_4 - 1. Ето и коригираната версия на кода: c Copy code Благодаря Ви отново за забележката! Въпреки че и това не е вярно (тъй като arg_4 се намалява с 1 на ред 0x00404462 и съответно низът има дължина arg_4 - 1. ) е впечатляващо
_________________ Вниманиене съмвишист....ИЙ.
|
Чет Мар 02, 2023 11:50 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27996 Местоположение: София
|
Re: ChatGPT
Чай сега ще го питам за тоя чип със сбъркания дейта шийт
|
Пет Мар 03, 2023 12:05 am |
|
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 6:26 pm Мнения: 608
|
Re: ChatGPT
Ако му дадеш повече инфо, като му дадеш за какво да се хване ,предполагам че много елегантно ще се съгласи с теб ... въпреки това ще те изненада.
_________________ Вниманиене съмвишист....ИЙ.
|
Пет Мар 03, 2023 12:16 am |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27996 Местоположение: София
|
Re: ChatGPT
Не можа да ме изненада, говори общи приказки, но ги говори логично, ще елиминира въпросите на студенти търсещи кой да им напише курсовия проект
|
Пет Мар 03, 2023 12:20 am |
|
|
pipilica
Ранг: Форумен бог
Регистриран на: Чет Апр 16, 2009 12:26 am Мнения: 2642 Местоположение: София
|
Re: ChatGPT
Бахти чата гадта разбира и от вредители и препарати. Ше го питам и за моя проблем ESP8266
|
Пет Мар 03, 2023 6:53 am |
|
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 1:21 am Мнения: 10612 Местоположение: София
|
Re: ChatGPT
Ако му обясниш естеството на проблема с три думи - както обичаш да обясняваш тук, не се надявай на помощ.
|
Пет Мар 03, 2023 8:51 am |
|
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 8:42 am Мнения: 10937 Местоположение: Гьотеборг
|
Re: ChatGPT
От консерви разбира ли? Компоти, туршии, вина, ракии, домашна и експериментална химия и физика?
|
Пет Мар 03, 2023 11:48 am |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4715
|
Re: ChatGPT
_________________ main[-1u]={1};
|
Пет Мар 03, 2023 6:30 pm |
|
|
pipilica
Ранг: Форумен бог
Регистриран на: Чет Апр 16, 2009 12:26 am Мнения: 2642 Местоположение: София
|
Re: ChatGPT
От консерви не разбира, лъже и дава друга рецепта. Не познава растения от снимка и говори глупости, но пък по име добре се справя с гугъл и дава верни линкове.
|
Пет Мар 03, 2023 6:59 pm |
|
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 12:31 pm Мнения: 3302
|
Re: ChatGPT
|
Пет Мар 03, 2023 10:34 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4194 Местоположение: Brussels / Пловдив
|
Re: ChatGPT
| | | | RM написа: Реверсвам един код и ... Тука вече паднах от стола ... АЗ Можеш ли да транслираш следния код на езика C | | | | Код: .text:00404454 ; =============== S U B R O U T I N E ======================================= .text:00404454 .text:00404454 ; Attributes: bp-based frame .text:00404454 .text:00404454 sub_404454 proc near ; CODE XREF: sub_4042D0+85↑p .text:00404454 .text:00404454 var_8 = dword ptr -8 .text:00404454 var_4 = dword ptr -4 .text:00404454 arg_0 = dword ptr 8 .text:00404454 arg_4 = dword ptr 0Ch .text:00404454 .text:00404454 push ebp .text:00404455 mov ebp, esp .text:00404457 add esp, 0FFFFFFF8h .text:0040445A xor eax, eax .text:0040445C mov [ebp+var_8], eax .text:0040445F mov edx, [ebp+arg_4] .text:00404462 dec edx .text:00404463 mov [ebp+var_4], edx .text:00404466 jmp short loc_404485 .text:00404468 ; --------------------------------------------------------------------------- .text:00404468 .text:00404468 loc_404468: ; CODE XREF: sub_404454+3A↓j .text:00404468 mov ecx, [ebp+arg_0] .text:0040446B xor eax, eax .text:0040446D mov al, [ecx] .text:0040446F add [ebp+var_8], eax .text:00404472 inc [ebp+arg_0] .text:00404475 test byte ptr [ebp+var_8+1], 1 .text:00404479 jz short loc_404485 .text:0040447B and [ebp+var_8], 0FFh .text:00404482 inc [ebp+var_8] .text:00404485 .text:00404485 loc_404485: ; CODE XREF: sub_404454+12↑j .text:00404485 ; sub_404454+25↑j .text:00404485 mov edx, [ebp+var_4] .text:00404488 add [ebp+var_4], 0FFFFFFFFh .text:0040448C test edx, edx .text:0040448E jnz short loc_404468 .text:00404490 mov al, byte ptr [ebp+var_8] .text:00404493 and al, 0FFh .text:00404495 pop ecx .text:00404496 pop ecx .text:00404497 pop ebp .text:00404498 retn .text:00404498 sub_404454 endp .text:00404498 .text:00404498 ; --------------------------------------------------------------------------- .text:00404499 align 4 .text:0040449C .text: | | | | |
ТОЙ Да, мога да транслирам този код на езика C. Ето го транслираният код: c Copy code Това е функция, която сумира символите на символен низ от дължина arg_4 и връща резултата модул 256. АЗ Имаш само една грешка реда while (var_4 >= 0) трябва да е while (var_4 > 0) Поздравления. ТОЙ Благодаря Ви за отбелязването на грешката! Действително, в условието на цикъла while, трябва да се използва операторът > вместо >=, тъй като arg_4 се намалява с 1 на ред 0x00404462 и съответно низът има дължина arg_4 - 1. Ето и коригираната версия на кода: c Copy code Благодаря Ви отново за забележката! Въпреки че и това не е вярно (тъй като arg_4 се намалява с 1 на ред 0x00404462 и съответно низът има дължина arg_4 - 1. ) е впечатляващо | | | | |
Тя и проверката на цикъла не е нито >0 нито >=0 ами !=0 ...
_________________ Мразя да мразя ...
|
Пет Мар 03, 2023 11:30 pm |
|
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 6:26 pm Мнения: 608
|
Re: ChatGPT
Така е - JNZ Не съм толкова добър но замазах нещата до работещ вариант. Функцията предава два аргумента, поинт към масив и дължина на масива. вътре си създава две променливи, едната е сумата от байтовете която функцията ще връща, другата е поинт към адресите на байтовете на масива . Записал съм го така ... . дължината на масива няма как да мине под 0.
_________________ Вниманиене съмвишист....ИЙ.
|
Съб Мар 04, 2023 5:21 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10368 Местоположение: Добрич
|
Re: ChatGPT
Ако искаш да е коректно типът на дължината трябва да е unsigned или по-модерното size_t. Иначе имаш int аргумент и ако някой по-разсеян ти подаде отрицателна стойност функцията ще се замисли яко и после ще гръмне ако свърши паметта.
|
Съб Мар 04, 2023 6:11 pm |
|
|
bobihot
Ранг: Форумен бог
Регистриран на: Сря Фев 13, 2013 2:35 pm Мнения: 1748
|
Re: ChatGPT
За какво ви е това, като си има гугле? То и като писах на асемблер колега от физиката ми каза да използвам други команди, че по-лесно се помнели. Оказа се, че са за знакови числа и почна да гърми...
|
Пон Мар 06, 2023 9:55 am |
|
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 12:31 pm Мнения: 3302
|
Re: ChatGPT
|
Пет Мар 24, 2023 11:15 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 20 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|