Como editar um .obj?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Tim9
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 14 Ago 2003 15:18
Localização: Ribeirão Preto
Contato:

Como editar um .obj?

Mensagem por Tim9 »

Alguém conhece alguma ferramenta para editar um .OBJ ?
Aguardo antecipando os meus mais sinceros agradecimentos por qualquer dica.
Até Breve!
Luz e Paz!
Tim9
------------------------------------------
olynthes@gmail.com
** Somos livres para escolher, mas prisioneiros das conseqüências **
------------------------------------------
Uso Clipper 5.2e, Blinker 7.0, Prwin 1.0 BFNTX migrando p/ xHarbour e Hwgui Dbfcdx
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Tenho 99,9% de certeza de que não existe ferramenta alguma que permita uma reorganização dos dados internos de um objeto, seja do tipo que for (são 2).
Mas se a alteração almejada for "leve", que não "deforme" o objeto original, pode-se fazer alguma coisa por meio de um editor hexa comum. Depende do quê exatamente você pretende fazer.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

Mensagem por Euclides »

Oi, Tim9
Depende do que deseja ser alterado...
Os .OBJ podem ser descompilados, alterados e recompilados.
Passe mais detalhes...
T+
Euclides
Avatar do usuário
Tim9
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 14 Ago 2003 15:18
Localização: Ribeirão Preto
Contato:

Mensagem por Tim9 »

Obrigado pela atenção,

Euclides vc me deixou bastante animado, o que quero é exatamente descompilar, alterar e recompilar. Vc pode me dizer apenas como descompilar, isto é, com qual ferramenta?

Mais uma vez grato e aguardo.
Até Breve!
Luz e Paz!
Tim9
------------------------------------------
olynthes@gmail.com
** Somos livres para escolher, mas prisioneiros das conseqüências **
------------------------------------------
Uso Clipper 5.2e, Blinker 7.0, Prwin 1.0 BFNTX migrando p/ xHarbour e Hwgui Dbfcdx
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Euclides vc me deixou bastante animado, o que quero é exatamente descompilar
Ah, deveria ter dito isso desde o começo. Descompilar um programa é muito diferente de editar objeto.

Mas é coisa simples. SE o objeto foi compilado pelo Clipper, apenas crie um programa mínimo que de alguma forma inclua esse objeto (alguma função dele), mas usando o RTLink pra montar o EXE. Depois é só usar o Valkyrie e descompilar. Tenho no meu site. Clique aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Tim9
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 14 Ago 2003 15:18
Localização: Ribeirão Preto
Contato:

Mensagem por Tim9 »

Oi Maligno vc é 10 uma assumidade na matéria tanto em quantidade quanto em qualidade, parabéns mais uma vez pela sua predisposição em ajudar a nós de menor conhecimento, desculpe, realmente quero editar, mas na minha ignorância fiquei animado pois pensei que o Euclides teria uma ferramenta para descompilar o .OBJ que gerava um .SRC como o V5 faz com o .EXE.

Vou relatar passo-a-passo o desafio que tenho e da ajuda que preciso:

01. Tenho um .EXE e .OBJ mas não tenho o .PRG
02. Descompilei o .EXE com o V5 e ele gerou o .SRC que renomeei p/ .PRG
03. Antes de fazer qualquer alteração compilei com o Blinker e deu o seguinte erro:

TIM.PRG(4101) Error C2021 Redefinition of procedure or function: 'SKIPPED' 1 error no code generated

04. Renomeei uma das funções e a linha que a chamava para skipped2, aí na compilação dá o seguinte erro:

SET CLIPPERCMD=/M /Q
Clipper TIM
294K available
Compiling TIM.PRG
Code size 73233, Symbols 11968, Constants 27999
BLINKER @TIM.LNK
BLINKER : 1115 : TIM.OBJ(TIM) : 'NATIONMSG' : unresolved external
BLINKER : 0 Warning error(s), 1 Fatal error(s)
TIM.EXE (not created) (0.2 seconds)

05. Não sei como resolver esse problema de NATIONMSG

06. Só por curiosidade compilei o .OBJ que já tinha em mãos com o RTLINK aí ele gera o .EXE embora com a mensagem abaixo:

.RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.14B
(C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved.


UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH:
SYMBOL FIRST REFERENCE
------ ---------------
'NATIONMSG' TIM.OBJ

warning wrt0022: .EXE may not execute properly -- undefined symbols
232K
1 warning message(s)


Bem o desafio está lançado e preciso de ajuda.
Qualquer dica será bem-vinda.
Aguardo e agradeço.
Até Breve!
Luz e Paz!
Tim9
------------------------------------------
olynthes@gmail.com
** Somos livres para escolher, mas prisioneiros das conseqüências **
------------------------------------------
Uso Clipper 5.2e, Blinker 7.0, Prwin 1.0 BFNTX migrando p/ xHarbour e Hwgui Dbfcdx
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Estranho. Esse símbolo NATIONMSG é uma função que está presente na biblioteca CLIPPER.LIB e por isso, não deveria dar erro na linkedição. Como é o script que você usou no BLinker pra remontar o EXE?

Um detalhe: tome cuidado com o que descompila com o Valkyrie, pois ele também descompila o que já é parte da biblioteca padrão do Clipper. Então você precisa separar as coisas e, quando for remontar o EXE, utilizar apenas aquilo que é parte do projeto da aplicação, excluindo o que é do Clipper mesmo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Tim9
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 14 Ago 2003 15:18
Localização: Ribeirão Preto
Contato:

Mensagem por Tim9 »

Para recompilar a saida do valkyrie fiz assim:

01. criei o C.BAT contendo:
RMAKE TIM
// eof //

02. criei o Tim.RMK contendo:
.prg.obj:
SET CLIPPERCMD=/M /Q
Clipper $*

TIM.OBJ : TIM.PRG

TIM.EXE :
BLINKER @TIM.LNK
// eof //

03. Criei o Tim.Lnk contendo:
BLINKER INCREMENTAL OFF
BLINKER DEMONSTRATION DATE 2008/02/25
BLINKER EXECUTABLE CLIPPER //F:250 //DYNF:8 //SWAPK:65535 //SWAPPATH:"C:\" //TEMPPATH:"C:\"
BLINKER PROCEDURE DEPTH 140
#BLINKER EXECUTABLE NODELETE
BLINKER OVERLAY OPSIZE 0
BLINKER EXECUTABLE COMPRESS 1
BLINKER EXECUTABLE EXTEND
stack 7068

MAP S,A

FI TIM

SEARCH BLXCLP52
SEARCH blxmsc51.lib
LIB BLXRATEX.lib
LIB EXTEND.LIB, CTP.LIB, VL2.LIB

OUT TIM

// eof //

Maligno, como não sou um expert como vc, este é um tamplete que utilizo para compilar todos os meus programas.

Agradeço imensamente a sua indispensável ajuda.

Aguardo.
Até Breve!
Luz e Paz!
Tim9
------------------------------------------
olynthes@gmail.com
** Somos livres para escolher, mas prisioneiros das conseqüências **
------------------------------------------
Uso Clipper 5.2e, Blinker 7.0, Prwin 1.0 BFNTX migrando p/ xHarbour e Hwgui Dbfcdx
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Como descompilador acho o RESCUE melhor de usar, o código descompilado com ele fica mais limpo, inclusive ele já gera o RMK, mas sem dúvida o caminho é esse que o Maligno ensinou, já utilizei esse método inclusive para descompliar algumas funções de LIBs.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Por acaso o .OBJ foi gerado com a mesma versão do Clipper que vc esta usando para compilar?

Se vc olhar no diretório do Clipper encontrará .OBJ ou .LIB que tem relação com NATIONMSG que ná verdade são relacionados as mensagens de erro do Clipper, ou seja, se voce recebe mensagens de erro em Ingles basta adiocionar um dos .OBJ la existentes que devolva as mensagens em Portugues.

Agregue ao seu .LNK e tudo resolvido.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

como editar un .obj?

Mensagem por Adalberto »

NationMsg e uma função chamada pelo GetSys.Prg, eu tenho a mesma falha e ainda estou procurando solução, agradeço qualquer ajuda.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Seguinte Galera :

A charada foi morta pelo Rochinha.

Na pasta OBJ do Clipper tem vários arquivos MSG, basta então compilar junto com a aplicação o correspondente ao idioma, no caso do português é MSGPOR.OBJ, não fiz o teste mas creio que deve desaparecer o problema, este arquivo serve para fazer algumas conversões de idioma para mensagens do clipper e uso com algumas funções.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Fiz o seguinte programa teste.

CLS
@ 05,00 SAY CDOW(DATE())
@ 06,00 SAY CMONTH(DATE())
RETURN

Linkei das seguintes formas

RTLINK FI TESTE,MSGPOR
RTLINK FI TESTE,MSGSWE
RTLINK FI TESTE,MSGITA
RTLINK FI TESTE

No caso 1 (português) - O resultado na tela foi :
Domingo
Fevereiro

No caso 2 (suéco) - O resultado na tela foi :
sôndag
februari
Exatamente assim, tudo minúsculo.

No caso 3 (italiano) - O resultado na tela foi :
Domenica
Febbraio

No caso 4 (default) - O resultado na tela foi :
Sunday
February

O iteressante é que linkando com o MSGPOR dá a seguinte mensagem no final :

.RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.14B
(C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved.

warning wrt0011: Public symbol '__nversion' doubly defined

UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH:
SYMBOL FIRST REFERENCE
------ ---------------
'__natmsgver' CLIPPER.LIB

warning wrt0022: .EXE may not execute properly -- undefined symbols
140K
2 warning message(s)

Mas funciona perfeitamente.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Imagino que o seu fonte TIM.PRG é aquele cujo fonte veio pelo Valkyrie. Então, se for mesmo, acredito que a etapa de descompilação foi vencida.

Código: Selecionar todos

BLINKER INCREMENTAL OFF
BLINKER DEMONSTRATION DATE 2008/02/25
BLINKER EXECUTABLE CLIPPER //F:250 //DYNF:8 //SWAPK:65535 //SWAPPATH:"C:\" //TEMPPATH:"C:\"
BLINKER PROCEDURE DEPTH 140
#BLINKER EXECUTABLE NODELETE
BLINKER OVERLAY OPSIZE 0
BLINKER EXECUTABLE COMPRESS 1
BLINKER EXECUTABLE EXTEND 
stack 7068

MAP S,A

FI TIM

SEARCH BLXCLP52
SEARCH blxmsc51.lib   
LIB BLXRATEX.lib      
LIB EXTEND.LIB, CTP.LIB, VL2.LIB

OUT TIM
Nesse script vejo um erro e alguns exageros. Aquilo que acredito ser exagero está nos comandos que, aparentemente, devido à simplicidade do projeto, não tem cabimento. São os comandos BLINKER DEMONSTRATION, PROCEDURE DEPTH e OVERLAY. Esse último nem faz sentido quando se monta um EXE para o modo protegido. O BLinker simplesmente o ignora. O comando STACK só deve ser usado se realmente for necessário. Remova. Se der problema, pode-se pensar em incluí-lo novamente, conforme o erro apresentado.

Também é exagero incluir a biblioteca EXTEND.LIB, que é "default" para o Clipper. Ela não precisa ser mencionada, pois o Clipper, ao montar o objeto, já instrui o linker a procurar por esta biblioteca. Portanto, mencioná-la no script é desperdício de espaço.

Por fim, o erro é a mistura de bibliotecas para o modo protegido: BLXCLP52 (esta é correto incluir, desde que seu Clipper seja da versão 5.2), BLXMSC51 (nada a ver com Clipper) e BLXRATEX (muita gente usa mas ninguém nunca justificou seu uso). Essa última eu nunca usei e nunca fez falta. Então, remova as bibliotecas BLXMSC51 e BLXRATEX.

Dica para o uso do BLinker: nunca use qualquer comando cuja finalidade você não conhece. Pra isso existe o manual. Leia e conheça seus recursos. A partir daí você passará a tirar um melhor proveito dele. Aliás, essa dica serve pra tudo relacionado à programação. Manual, para o programador, é como sapato para a mulher. Tem que ter de monte. E tem que usar. :)

Recompile e veja no que dá.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Por isto ainda guardo meus antigos livros Tom Retting Library e Ramalho Séries, além de todos os NGs que pude encontrar.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder