реверс функции - надо узнать оригинал
От: Аноним  
Дата: 18.05.10 16:25
Оценка:
суть
есть программа под реверс
в ней уже точно на все 100% определена определенная группа функций
которые пренадлежат одному и тому же классу

выглядит это так
sub_1
sub_2
sub_3
sub_4
sub_5
sub_6
sub_7
sub_8
sub_9
sub_10
sub_11
...
sub_20

как извесно что в функциях класса первый аргумент это this
все функции уже разобраны
осталась одна под номером sub_8
абсолютно извесно что это точно функция этого же класса
но! есть один ньюанс, эот первый параметр этой функции не this
а пареметром этой функции под номером 8 идёт совсем другой класс, но! внутри функии через этот параметр инициализируються констуркторы этого другого класса

выглядит это так

назовем группу распознаных функций — классом A, а не известного класса — классом B

тогда функция под номером 1 или другие будут выглядеть как то так

sub_1(A arg0/* this */)
{

}

итд, другие функции этого A класса
за исключением функции под номером 8
выглядит она так

B sub_8(B arg0, A arg4)
{
...
if (..)
{
...
arg0.B::B(??); // под вопросами некие аргументы
...
} else
{
...
arg0.B::B(????); // под вопросами некие другие чем в первом случае аргументы
...
}
return arg0;
}
над первым арументом(arg0) кроме тех действий что я описал выше в функции, не происходит.
тоесть он используеться именно два раза как конструктор и далее возращаеться на выходе из функции

функция очень похожа на operator<<
но! меня настораживает что первый аргумент этой функции инициализируеться дважды в ней как конструктор!(и в этом я тоже на 100% уверен — именно два раза конструктор а не просто члены класса B)

но извесно то что в любой оператор передаеться ссылка & на обьект, и уже повторно он врядли сможет проинициализироваться?!
так же как видите функция sub_8 возращает этот же B класс

в теле кода где используеться эта функция, сразу же после использования ее разворачиваеться код деструктора B класса


помогите идентифицировать функции, и если можно пример ее использования
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.